Django получает набор запросов через дополнительное поле Many To Many

У меня есть отношение "многие ко многим" между двумя объектами класса, мне нужно получить набор запросов, отфильтрованный по дополнительному полю "многие ко многим"

это мои 3 класса

class Card(models.Model):
    title = models.CharField(max_length=250 )
    tags = models.ManyToManyField(Tag, through='Cards_Tags')

class Tag(models.Model):
    tag = models.ForeignKey(Tag, on_delete=models.CASCADE)

class Cards_Tags(models.Model):
    tag = models.ForeignKey(Tag, on_delete=models.CASCADE)
    card = models.ForeignKey(Card, on_delete=models.CASCADE)
    field = models.CharField( max_length=25, blank=True )

если я использую это, то оно работает, но оно возвращает кверисет Cards_Tags, а мне нужен тот же результат, что и объекты Tags

developers = Cards_Tags.objects.filter(card=obj, field='developer')

как я могу получить набор запросов Tags, где m2m отношения в Cards_Tags имеют поле='developer' ?

Вы можете фильтровать с помощью:

Tag.objects.filter(cards_tags__card=obj, cards_tags__field='developer')

или вы можете работать через ManyToManyField:

obj.tags.filter(cards_tags__field='developer')

Примечание: Модели в Django пишутся в PascalCase, а не snake_case, поэтому вы можете захотеть переименовать модель из Cards_Tags в CardTag. В этом случае вы фильтруете с помощью obj.tags.filter(cardtag__field='developer')

.
Вернуться на верх