Это изображение не является типичным изображением трясогузки (полученное из 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 }}
.