Изображение по умолчанию не сохраняется в БД - PullRequest
0 голосов
/ 28 марта 2019

У меня есть требование, когда, если пользователь не загружает изображение, изображение по умолчанию должно быть сохранено в БД, для этого я использую атрибут по умолчанию в FileField , но изображение по умолчанию не сохраняется в БД.

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

Ответы [ 2 ]

2 голосов
/ 28 марта 2019

Вы можете сделать это так.Укажите полный путь до 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 %}
0 голосов
/ 28 марта 2019

Я думаю, что вы должны оставить поле пустым, если изображение не загружено.Это облегчит аудит и фильтрацию.Я бы просто бросил свойство:

@property
def image_url(self):
  if self.image:
       return self.file.url
  else:
       return "default/image/path/default.jpg"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...