У меня есть две следующие модели:
class SpecimenImage(models.Model):
image = ImageField(upload_to='images/')
usi_image = models.ForeignKey('SpecimenRecord', on_delete=models.SET_NULL, null=True, blank=True, verbose_name='Unique Specimen Identifier')
...
class SpecimenRecord(models.Model):
usi = models.CharField(primary_key=True, max_length=20, verbose_name='Unique Specimen Identifier')
species = models.ForeignKey(Species, on_delete=models.SET_NULL, null=True, blank=True)
locality = models.ForeignKey(Locality, on_delete=models.SET_NULL, null=True, blank=True)
date = models.DateField(null=True, blank=True)
collector = models.ManyToManyField(Collector, verbose_name='Collector(s)', null=True, blank=True)
...
У меня есть общее подробное представление для SpecimenRecord
:
...
class SpecimenDetailView(generic.DetailView):
model = SpecimenRecord
Вот urls.py:
...
urlpatterns = [
...
path('specimen/<str:pk>', views.SpecimenDetailView.as_view(), name='specimen-detail'),
]
У меня вопрос, как мне отобразить и просмотреть все экземпляры SpecimenImage
, связанные с одним объектом SpecimenRecord
в HTML-шаблоне? Я могу легко отобразить информацию для каждого SpecimenRecord
, используя {{ specimenrecord.usi }}
и т. Д., Но не могу понять, как отобразить каждое изображение.
Я пытался использовать информацию на веб-сайте MDN для общегоподробные виды (https://developer.mozilla.org/en-US/docs/Learn/Server-side/Django/Generic_views):
{% for copy in book.bookinstance_set.all %}
<!-- code to iterate across each copy/instance of a book -->
{% endfor %}
Вот код, который я пробовал в моем шаблоне specimenrecord_detail.html
:
{% extends "base.html" %}
{% load thumbnail %}
{% block content %}
...
{% for copy in specimenrecord.specimenimage_set.all %}
<div class="gallery">
<img src="{% thumbnail copy.image '1920' as im %}{{ im.url }}{% endthumbnail %}" alt="specimen image"
srcset="
{% thumbnail copy.image '544' as im %} {{ im.url }} {{ im.x }}w{% endthumbnail %},
{% thumbnail copy.image '768' as im %} {{ im.url }} {{ im.x }}w{% endthumbnail %},
{% thumbnail copy.image '992' as im %} {{ im.url }} {{ im.x }}w{% endthumbnail %},
{% thumbnail copy.image '1200' as im %} {{ im.url }} {{ im.x }}w{% endthumbnail %},
{% thumbnail copy.image '1920' as im %} {{ im.url }} {{ im.x }}w{% endthumbnail %}"
alt="specimen image"
sizes="100vw"
/>
</div>
{% endfor %}
{% endblock %}
Однако этот код дал пустое значение <div>
. Что такоеЯ делаю не так?