django默认个人资料图片

时间:2018-03-08 15:57:43

标签: django django-models django-templates

我正在尝试使用静态文件上的图像设置默认配置文件图像URL。 当我有一个配置文件图像使用这个工作正常

<img src="{% if user.avatar %}{{ user.avatar.url }}{% endif %}">

当我尝试默认图像时

<img  src="{% static 'img/default-avatar.png' %}">

也可以正常使用

但是当我清除图像时,我试图显示默认图像

ValueError at:'avatar'属性没有与之关联的文件。

#my model
class User(AbstractUser):
    #otherstuff 
    avatar         = models.ImageField(null=True ,blank=True)
    #morestuff 

#template 

    <img src="{% if user.avatar %}{{ user.avatar.url }}{% else %}{% static 'img/default-avatar.png' %} {% endif %}">

1 个答案:

答案 0 :(得分:0)

在Django中有一种简单的方法:

<img src="{{ user.avatar.url|default:"img/default-avatar.png" }}">

不要忘记在模板顶部加载静态文件:

{% load static %}