Задать вопрос
@mkone112
Начинающий питонист.

Как использовать static файл в ImageField по умолчанию?

Если указать дефолтный файл в поле, то при создании новых экземпляров модели - вместо использования всеми экземплярами одного файла - в корне создается множество копий этого файла. Как можно этого избежать?
...
app/
└── static/
│  └── img.png  # вместо использования этого файла
└── models.py

...
class ModelWithDefaultStaticImage(models.Model):
    image_file = models.ImageField(default='img.png')


img_iGJ3tYB.png  # на каждый экземпляр модели создается копия
...
  • Вопрос задан
  • 681 просмотр
Подписаться 1 Простой Комментировать
Решения вопроса 1
Mi11er
@Mi11er
A human...
Делаем по совету Dr. Bacon

В модели ставим Null
class officeUsers(models.Model):
    ....
    photo = models.ImageField(verbose_name='Фотография',
                              upload_to='photos/%Y/%m/%d',
                              blank=True)
    ....


В шаблоне проверяем

<div class="user_img">
      <img src="{% if user.photo %}{{ user.photo.url }}{% else %}{% static 'sysadmins/img/avatar.jpg' %}{% endif %}" alt="">
</div>
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@dooMoob
Делал такую штуку. Реализовал примерно так:
При создании юзера ему рандомно присваивается одна и статик картинок, далее эта картинка создается с таким же названием в папке /media/, если ее там не было. Далее просто подсовываетя правильный путь этой картинки в /media/ в модель
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы