0

내 사이트가 꽤 시각적이며 사이트 전체에 사용자 아바타를 사용하여 사용자 정의 템플릿 태그를 작성하는 것이 최선의 방법이라고 생각합니다.django 아바타 사용자 정의 템플릿 태그

UserProfileUser과 연결되어 있으며 profile_pic입니다.

내가 장고 - imagekit 따라서 ImageModel을 활용하고 나는 사람들이 내 모든 최신 게시물을 전화를 통해 게시 한 소식과 정보를 나열하고 내 앞 페이지에서 플레이

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

로 제공됩니다. 각 사용자는 게시물과 연관되어 있습니다.

그래서 내 프로필에 내 templatetags 폴더를 생성하고 또한 파일을 지금이 내가 쓰고 내 첫 번째 태그입니다 나는

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) 

을 다음 렌더링 내 avatar_tags.py에서 myavatar_tags.py

라고 그리고 나는 이것이 정말로 어떤 방향으로 나아갈 지 확신하지 못합니다.

답변

1

나는 당신이 inclusion tag라고 생각합니다.

@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 }}" /> 

- 렌더링 뷰를 제공 이 템플릿은 객체를 my_user이라는 이름으로 전달하고 위의 파이썬 코드를 foobar.py이라는 파일에 넣었습니다.

{% load foobar %} 

{% my_avatar my_user %} 
+0

흠, 이것이 작동하지 않는 것 같습니다. 내 프론트 페이지에서 포스트 모델을 호출하는 포스트 {%에 포스트에 대한 %}를 사용하여 게시물을 렌더링합니다. 사용자 필드가있는 포스트 모델에서는이 모든 것이 여전히 적용 가능합니까? – ApPeL

+0

나는 이것을 매끄럽게 작동하도록했다. 그래도 한 가지 질문이 있습니다. 보낸 사람과받는 사람이있는 메시지 모델이 있습니다. 수령인을 통과하면 작동합니다. 보낸 사람을 전달할 때 둘 다 사용자 foreignKey 필드 임에도 불구하고 실패합니다. 어떤 생각입니까? – ApPeL

관련 문제