Как вывести в шаблон django данные из пользовательских полей промежуточной таблицы ManyToMany

Помогите разобраться с запросами django. необходимо передать дополнительные поля из промежуточной модели в шаблон.

никак не могу понять как эти поля выводить так, чтобы они были вместе с данными одной из моделей, которая связана с промежуточной таблицей через ForeignKey. Модели выглядят вот так:

class Desk(models.Model):
    name = models.CharField(max_length=100)
    deskription = models.TextField(max_length=1000)

class Columns(models.Model):
    class Meta:
        ordering = ['order_num']

    name = models.CharField(max_length=50)
    desk = models.ForeignKey(Desk, on_delete=models.CASCADE, related_name='desk')
    order_num = models.IntegerField()
    archived = models.BooleanField(default=False)


class Card(models.Model):
    class Meta:
        ordering = ["-order_num"]

    name = models.CharField(max_length=50, null=True, blank=True)
    description = models.TextField(max_length=1000, null=True, blank=True)
    column = models.ForeignKey(Columns, on_delete=models.CASCADE, related_name='cards')
    order_num = models.IntegerField()
    archived = models.BooleanField(default=False)
    status = models.CharField(max_length=20, default='no-status')


class Sticker(models.Model):

    name = models.CharField(max_length=50)
    color = models.CharField(max_length=50)
    icon = models.CharField(max_length=50)
    card = models.ManyToManyField(Card, related_name='stickers', through='StateStickers')


class StateStickers(models.Model):
    sticker = models.ForeignKey(Sticker, on_delete=models.CASCADE)
    card = models.ForeignKey(Card, on_delete=models.CASCADE)
    state = models.CharField(max_length=50, null=True, blank=True)

View функция рендеринга страницы

class ColumnsViews(View):
    def get(self, request: HttpRequest, name):
     
        prefetch_sticker = Prefetch('stickers', queryset=Sticker.objects.all())
    
        prefetch_cards = Prefetch('cards',                         
            queryset=Card.objects.filter(archived=False).prefetch_related(prefetch_sticker))

    
        columns_qset = Columns.objects.filter(desk__name=name, 
                          archived=False).prefetch_related(prefetch_cards)

        context = {
            "columns": columns_qset,
            'desk_name': name,
            'param_status': param_status,
        }
        return render(request, "deskapp/columns-list.html", context=context)

Что необходимо: В шаблоне я через for перебираю все Columns, затем в каждой Columns перебираю Cards, и затем в каждой Cards перебираю Stickers. и мне нужно опрашивать есть ли у стикера состояние state. Как запросить из промежуточной модели StateStickers поле state, которое будет доступно вместе с полями модели Sticker, чтобы в шаблоне можно было обратиться через sticker.state


Ответы (0 шт):