Не отображается картинка категории Python Django
Почему не отображается картинка категории. Сайт про разные софты и в каждом нужно выводить фото категории и саму категорию. Категория выводиться, но фото нет.
Вот models.py(использовал FileField, потому что фото категорий в формате .svg):
class Category(models.Model):
img = models.FileField(null=True, blank=True, verbose_name='Фото категории')
name = models.CharField(max_length=25, verbose_name='Название')
parent_category = models.ForeignKey('self', on_delete=models.CASCADE, null=True, blank=True)
def __str__(self):
return self.name
class Meta:
verbose_name_plural = 'Категории'
verbose_name = 'Категория'
ordering = ['name']
views.py:
def index(request):
softs = Soft.objects.all()
categories = Category.objects.filter(parent_category=None)
context = {'softs': softs, 'categories': categories}
return render(request, 'main/index.html', context)
И сам index.html:
soft.category.img.url выдает ошибку "The 'img' attribute has no file associated with it.", а soft.category.img понятное дело не работает.
{% for soft in softs %}
<article class="soft">
<div class="poster"><img src="{{ soft.img.url }}"></div>
<div class="details">
<h1><a href="#0">{{ soft.title }}</a></h1>
<div class="meta">
<span class="pubdate">{{ soft.published|date:"d.m.Y" }}</span>
<span class="cat icon"><a href="#0" class="cat"><img src="{{ soft.category.img }}" width="16px"> {{ soft.category.name }}</a></span>
</div>
</div>
</article>
{% endfor %}
Всем откликнувшимся заранее спасибо.
Ответы (1 шт):
Автор решения: Sherlock
→ Ссылка
Возможно все таки, что у одной из категории отсутствует img. Попробуйте сделать проверку:
<span class="cat icon"><a href="#0" class="cat"><img src="{% if soft.category.img %}{{ soft.category.img }} {% endif %}" width="16px"> {{ soft.category.name }}</a></span>
UPD: Возможно не практично, но попробуйте такую проверку:
{% if soft.category.img and soft.category.parent_category == None %}{{ soft.category.img }} {% endif %}