Мне нужно установить изображение профиля для модели в Django. Я использую подушку. Моя проблема в том, что путь, который я установил на models.py (где изображения идут, когда я загружаю их с помощью admin), не совпадает с тем, который используется шаблоном, и поэтому изображения никогда не отображаются.Невозможно правильно установить путь для изображения, связанного с моделью, в Django
Моя статическая папка находится в папке приложения (это простой проект с одним приложением), но администратор загружает изображения в какую-то папку за пределами папки приложения.
Это мой код в models.py:
def get_image_path(instance, filename):
return os.path.join('static/artists/images', str(instance.id), filename)
class Artist(models.Model):
name = models.CharField(max_length=255)
soundcloud = models.URLField(max_length=255, blank=True, null=True)
description = models.TextField()
profile_picture = models.ImageField(upload_to=get_image_path, blank=True, null=True)
current_roster = models.BooleanField(default=True)
def __str__(self):
return self.name.encode('utf8')
И это код в шаблоне:
{% if artist.profile_picture %}
<img src="{{ artist.profile_picture.url }}" alt="Artist pic" style="width: 200px;">
{% endif %}
Может кто-нибудь помочь мне, пожалуйста? Заранее спасибо!
Спасибо! Я переместил статическую папку в папку проекта (вместо папки приложения) и все стили, и все пропало. Как вы это настроили? – Gothbag
Где я сказал, что вы должны их переместить? Оставьте их в папке приложения. Создайте новый каталог внутри вашего проекта (лично я предпочитаю создавать dir с именем 'public' и внутри 2 dirs:' static' и 'media'), установить путь к этому каталогу внутри вашего файла настроек (как' STATIC_ROOT') и запустить './manage.py collectstatic'. Все статические файлы из всех приложений будут скопированы здесь. – GwynBleidD