我有兩個類物件之間的多對多關系,我需要獲取由多對多額外欄位過濾的查詢集
那是我的 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')
我如何獲得標簽查詢集,其中 Cards_Tags 中的 m2m 關系具有欄位 ='開發者'?
uj5u.com熱心網友回復:
您可以使用以下方式過濾:
Tag.objects.filter(cards_tags__card=obj, cards_tags__field='developer')
或者您可以通過以下方式作業ManyToManyField:
obj.tags.filter(cards_tags__field='developer')
注意:Django 中的模型是用PascalCase而不是snake_case 撰寫的,因此您可能希望將模型從 重命名
為Cards_TagsCardTag。在這種情況下,您過濾obj.tags.filter(cardtag__field='developer')
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/406259.html
標籤:
