Django 评论自定义用户头像
Django comments custom user profile avatar
我正在使用 Ajax Comments System 来呈现评论和表单
我有一个包含头像字段的自定义用户配置文件
class UserProfile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE, default="")
avatar = ImageField('userprofile', default='avatars/default.png', upload_to="avatars" )
在常规视图中,我曾经这样做:
from Profiles.models import UserProfile as Author
def BlogPost(request, slug):
post_slug = posts.objects.get(slug=slug)
author_avatar = Author.objects.get(user=User.objects.get(username=post_slug.author).id).avatar.url
args = {
'post_slug': post_slug,
'author_avatar': author_avatar,
'related': _related(post_slug.tags),
}
return render(request, "blog_post.html", args)
但现在我正在努力获取每个评论员的头像...
我需要解决方案,即使我曾经修改包或覆盖它
我第一次尝试覆盖视图并添加一些上下文,但后来我意识到模板参数位于模板标记文件中,我将文件复制到我的项目中并创建了一个新标记 return头像
@register.simple_tag
def get_avatar(Profile, comment):
return Profile.__class__.objects.get(user=comment.user.id).avatar.url
# {% get_avatar UserProfile comment %}
我完全错过了那个模板标签文件夹,这就是为什么我花了一段时间才解决它
更新
我遇到了一些经理和归因错误这是我的最终自定义标签
如果有人有其他解决方案 post 它
@register.simple_tag
def get_avatar(Profile, comment):
user_id = comment.user.id
try:
return Profile.__class__.objects.get(user=user_id).user.avatar.url
except:
try:
return Profile.objects.get(user=user_id).user.avatar.url
except AttributeError:
return UserProfile.objects.get(user=user_id).avatar.url
将其作为隐藏输入放在模板中的头像标签之前,以避免引用 ajax 服务器错误(对我来说,这个 return slug 并且出于某种原因,如果没有它,用户头像 url 将作为推荐人发送)
@register.simple_tag
def get_url(comment):
return str(comment.content_object).replace(' ', '_')
我正在使用 Ajax Comments System 来呈现评论和表单 我有一个包含头像字段的自定义用户配置文件
class UserProfile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE, default="")
avatar = ImageField('userprofile', default='avatars/default.png', upload_to="avatars" )
在常规视图中,我曾经这样做:
from Profiles.models import UserProfile as Author
def BlogPost(request, slug):
post_slug = posts.objects.get(slug=slug)
author_avatar = Author.objects.get(user=User.objects.get(username=post_slug.author).id).avatar.url
args = {
'post_slug': post_slug,
'author_avatar': author_avatar,
'related': _related(post_slug.tags),
}
return render(request, "blog_post.html", args)
但现在我正在努力获取每个评论员的头像... 我需要解决方案,即使我曾经修改包或覆盖它
我第一次尝试覆盖视图并添加一些上下文,但后来我意识到模板参数位于模板标记文件中,我将文件复制到我的项目中并创建了一个新标记 return头像
@register.simple_tag
def get_avatar(Profile, comment):
return Profile.__class__.objects.get(user=comment.user.id).avatar.url
# {% get_avatar UserProfile comment %}
我完全错过了那个模板标签文件夹,这就是为什么我花了一段时间才解决它 更新 我遇到了一些经理和归因错误这是我的最终自定义标签 如果有人有其他解决方案 post 它
@register.simple_tag
def get_avatar(Profile, comment):
user_id = comment.user.id
try:
return Profile.__class__.objects.get(user=user_id).user.avatar.url
except:
try:
return Profile.objects.get(user=user_id).user.avatar.url
except AttributeError:
return UserProfile.objects.get(user=user_id).avatar.url
将其作为隐藏输入放在模板中的头像标签之前,以避免引用 ajax 服务器错误(对我来说,这个 return slug 并且出于某种原因,如果没有它,用户头像 url 将作为推荐人发送)
@register.simple_tag
def get_url(comment):
return str(comment.content_object).replace(' ', '_')