默认图像未保存在数据库中

时间:2019-03-28 11:10:13

标签: django

我有一个要求,如果用户不上传图像,则默认图像应保存在数据库中,为此,我正在使用 FileField 中的默认属性,但默认图像未保存在数据库。

file = models.FileField(upload_to='photos/',default='NoImage.jpg')

2 个答案:

答案 0 :(得分:2)

您可以这样做。给完整路径加上MEDIA_ROOT,例如

file = models.FileField(upload_to='photos/',default='settings.MEDIA_ROOT/photos/NoImage.jpg')

但是我建议保留它null,因为在很多用户不上传任何图像的情况下。您不必要在数据库中插入了这些数量的重复默认图像。

在您的 django-template 中,您可以处理

{% if not file %}

<img src= "{{ MEDIA_URL }}photos/NoImage.jpg"> 

{% endif %}

答案 1 :(得分:0)

我认为,如果未上传图片,则应将该字段留空。这将使审核和筛选更加容易。我会扔一个财产:

@property
def image_url(self):
  if self.image:
       return self.file.url
  else:
       return "default/image/path/default.jpg"