0

私のサイトは非常に視覚的で、サイト全体でユーザーのアバターを利用したいので、カスタム テンプレート タグを作成するのが最善の方法だと思います。

MyUserProfileは に関連付けられておりUser、 がありprofile_picます。

私はdjango-imagekitを利用しているため、ImageModelが機能します

class UserProfile(ImageModel):  
    profile_pic = models.ImageField(storage=cloudfiles_storage,
                                    upload_to='avatars',
                                    default='avatar-blank.jpg')`

私のフロントページには、私の最新の投稿をすべて呼び出して人々が投稿したニュースと情報をリストしています. 各ユーザーは投稿に関連付けられています。

そのため、プロファイルでtemplatetagsフォルダーとというファイルも作成しましたmyavatar_tags.py

私の avatar_tags.py で、次をレンダリングします

from accounts.models import UserProfile  
from imagekit.models import ImageModel  
from django import template 

register = template.Library()

@register.simple_tag  
def my_avatar(request, user):  
    avatar = UserProfile.objects.get(pk=user.id)

my_avatar = register.tag(my_avatar)

今、これは私が書いている最初のタグであり、実際にこれをどのように使用すればよいかわかりません。

4

1 に答える 1

1

包含タグが必要だと思います。

@register.inclusion_tag('avatar.html')
def my_avatar(user):
  return {'user': UserProfile.objects.get(pk = user.id) }

次に、と呼ばれるavatar.htmlテンプレートに、通常どおりタグのテンプレートを記述します。おそらく次のようなものが必要です。

<img src="{{ user.profile_pic.url }}" alt="{{ user.get_name_somehow }}" />

次に、このタグを次のように使用できます。このテンプレートをレンダリングするビューが与えられ、User名前を介してオブジェクトを渡し、my_user上記のPythonコードを。というファイルに配置しますfoobar.py

{% load foobar %}

{% my_avatar my_user %}
于 2010-08-18T07:35:21.250 に答える