gpt4 book ai didi

django-templates - 如何将用户个人资料头像图像渲染到 wagtail 模板中?

转载 作者:行者123 更新时间:2023-12-03 21:20:13 27 4
gpt4 key购买 nike

我正在使用 Wagtail CMS 创建一个博客站点。每当发布新帖子时,我都想显示作者头像。我试图从这个 /admin/account/change_avatar/ 渲染图像地点。我可以看到这里上传的图片在 wagtailusers_userprofile -> col name: avatar 下表,但不确定如何在模板中呈现它。

最佳答案

此图像不是典型的 Wagtail 图像(来自 wagtailimages.Image 的图像),这看起来像普通的 models.ImageField .

以下是头像的 UserProfile 模型中的内容:

class UserProfile(models.Model):

user = models.OneToOneField(
settings.AUTH_USER_MODEL, on_delete=models.CASCADE, related_name='wagtail_userprofile'
)

avatar = models.ImageField(
verbose_name=_('profile picture'),
upload_to=upload_avatar_to,
blank=True,
)

因为这是一个常规的图片字段,你可以通过附加 .url 来获取 url。在您的模板中。

这是一些示例模板代码:
{% if request.user.is_authenticated %}
{% if request.user.wagtail_userprofile.avatar %}
<img src="{{ request.user.wagtail_userprofile.avatar.url }}" alt="{{ request.user.get_full_name }}">
{% else %}
{# No image #}
{% endif %}
{% endif %}

上面的代码将检查用户是否在模板中通过了身份验证。如果你不需要它,放弃它。

然后是 if request.user.wagtail_userprofile.avatar 的检查声明存在。 wagtail_userprofile来自 user场上 UserProfile模型。它正在使用 related_name ,所以我们在模板中使用它。

我还撒了个 {{ request.user.get_full_name }}对于 alt 标签,因为在这种情况下图像 alt 可能应该是用户名,而不是文件名。

如果您需要高度或宽度,这些都可以通过 {{ request.user.wagtail_userprofile.avatar.height }} 获得。和 {{ request.user.wagtail_userprofile.avatar.width }} .

关于django-templates - 如何将用户个人资料头像图像渲染到 wagtail 模板中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54952994/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com