Django ORM: Использование поворотных/промежуточных таблиц

Я пытаюсь отрисовать вид article путем фильтрации через модель Spots и Images. Мне удалось отобразить пятна, связанные с каждой статьей, но не удается отобразить изображения для каждого пятна.

У меня есть промежуточная таблица ArticleSpots для связи двух таблиц Spots и Articles. У меня есть еще одна промежуточная таблица ImagesSpots для связи таблиц Spots и Images.

Все места, связанные со статьей, отображаются, но как я могу отобразить изображения для каждого места?

views.py

def article(request, slug):
    article = get_object_or_404(Articles, slug=slug)
    spots = Spots.objects.filter(articlespots__article=article).distinct()
    images = Images.objects.filter(imagespots__spots=spots)
    
    context = {'spots': spots, 'article': article, 'images':images}
    return render(request, 'articletemplate.html', context)

models.py

class Articles(models.Model):
    title = models.CharField(max_length=155)
    metatitle = models.CharField(max_length=155)
    slug = models.SlugField(unique=True, max_length=155)
    summary = models.TextField(blank=True, null=True)
    field_created = models.DateTimeField(db_column='_created', blank=True, null=True)  
    field_updated = models.DateTimeField(db_column='_updated', blank=True, null=True)  
    cover = models.ImageField(upload_to="cover", blank=True, default='logo-00-06.png')

    class Meta:
        managed = True
        db_table = 'articles'
        verbose_name_plural = 'Articles'

    def __str__(self):
        return str(self.id) + ": " + str(self.title)


class Spots(models.Model):
    title = models.CharField(max_length=155)
    metatitle = models.CharField(max_length=155)
    slug = models.SlugField(unique=True, max_length=155)
    author = models.ForeignKey(Authors, models.DO_NOTHING)
    field_created = models.DateTimeField(db_column='_created', blank=True, null=True)  
    field_updated = models.DateTimeField(db_column='_updated', blank=True, null=True)  
    cover = models.ImageField(upload_to="cover", blank=True, default='logo-00-06.png')
    summary = models.TextField(blank=True, null=True)
    content1 = models.TextField(blank=True, null=True)
    content2 = models.TextField(blank=True, null=True)


    class Meta:
        managed = True
        db_table = 'spots'
        verbose_name_plural = 'Spots'

    def __str__(self):
        return str(self.id) + ": " + str(self.title)


class ArticleSpots(models.Model):
    article = models.ForeignKey('Articles', models.DO_NOTHING)
    spot = models.ForeignKey('Spots', models.DO_NOTHING)

    class Meta:
        managed = True
        db_table = 'article_spots'
        verbose_name_plural = 'ArticleSpots'

    def __str__(self):
        return str(self.article) + ": " + str(self.spot)


class Images(models.Model):
    note = models.CharField(max_length=100, blank=True, null=True)
    image = models.ImageField(upload_to="images", blank=True, default='logo-00-06.png')

    class Meta:
        managed = True
        db_table = 'images'
        verbose_name_plural = 'Images'
        
    def __str__(self):
        return str(self.id) + ": " + str(self.note)


class ImageSpots(models.Model):
    images = models.ForeignKey('Images', models.DO_NOTHING)
    spots = models.ForeignKey('Spots', models.DO_NOTHING)

    class Meta:
        managed = True
        db_table = 'image_spots'
        verbose_name_plural = 'ImageSpots'
        
    def __str__(self):
        return str(self.spots) + ": " + str(self.images)

html. Я хочу сделать что-то вроде ниже, где я отображаю каждое пятно и внутри пятна отображаю изображения для каждого пятна. Как мне закодировать эту часть?

<main class="page"></main>
<p>{{ article.title }}</p>
{% for spots in spots %} {{ spots.title }} 
{{ spots.content1 }}
<img src="{{ **IMAGES FOR EACH SPOT** }}" alt="" class="article-photo" />
{% endfor %}
Вернуться на верх