Я прочитал об этом, но я не могу найти то, что решает мою проблему.Как отобразить объект ForeignKey в ListView - Django
Я пытаюсь отобразить таблицу со списком продуктов с эскизами. Поле миниатюр в таблице не возвращает URL-адрес, но возвращает сломанную ссылку изображения только для продуктов, у которых есть миниатюра.
Этот список продуктов использует ListView, и я могу отобразить штраф миниатюр в детальном виде продукта (а DetailView), который использует один и тот же код шаблона
Что мне нужно сделать, чтобы отобразить thumbnail для каждого продукта в ListView ... т.е. как я должен изменить свой запрос, чтобы передать миниатюру в шаблон вместе с продуктом?
Посмотреть
class ProductView(generic.ListView):
template_name = 'product/product.html'
context_object_name = 'product_list'
def get_queryset(self):
return Product.objects.all()
Шаблон
{% for product in product_list %}
<tr>
<td><a href="/product/{{ product.id }}/">{{ product.title }}</a></td>
<td> {% if product.thumbnails.all %}
<img src="{{ product.thumbnail.url }}" alt="...">
{% endif %}
</td>
<td>{{ product.category }}</td>
<td>{{ product.subcategory }}</td>
<td>{{ product.status }}</td>
<td>{{ product.date_added }}</td>
{% endfor %}
Модель
class ProductThumbnail(models.Model):
product = models.ForeignKey(Product, default=None, related_name='thumbnails')
thumbnail = models.ImageField(upload_to='thumbnails/',
verbose_name='thumbnail', blank=True,)
Пожалуйста, дайте мне знать, если требуется больше информации.
Что вы эскиз хотели бы показать в таблице, если продукт имеет более чем одну миниатюру? – baxeico
есть только одна миниатюра для продукта – timg