Django - Как вернуться к изображению по умолчанию после того, как пользователи удалили свое загруженное изображение? - PullRequest
0 голосов
/ 25 марта 2020

Итак, я изначально заставил пользователя создать пост в admin и иметь возможность оставить поле изображения пустым, а Django установит изображение по умолчанию.

Моя проблема в том, что Если пользователь загружает изображение, а затем удаляет его в админке, я получаю сообщение об ошибке: The 'image' attribute has no file associated with it. при доступе к соло. html в браузере.

Как сделать так, чтобы изображение по умолчанию снова появлялось и, в частности, получалось из Stati c папка? Static folder location

Мой код:

settings.py

STATIC_URL = '/static/'

STATIC_DIRS = os.path.join(BASE_DIR, 'static')

models.py

# FIXME: If default image is changed to user's upload but then deleted. Make default image reappear.
# Recipe Field
class Recipe(models.Model):
    title = models.CharField(max_length=200)


    image = models.ImageField(upload_to='recipes/images/', blank=True)
    def get_image(self):
        if not self.image:
            return f'{settings.STATIC_URL}default.png'
        return self.image.url

соло. html

<h2>{{ recipe.title }}</h2>
<h3>{{ recipe.category }}</h3>
<h3>{{ recipe.meal }}</h3>



<img src="{{ recipe.image.url }}">

Я только начинаю с Django, поэтому заранее прошу прощения, если все в порядке. Заранее спасибо!

1 Ответ

0 голосов
/ 25 марта 2020

Происходит то, что сам файл удаляется, но recipe.image не устанавливается на None.

...