1 回答

TA貢獻(xiàn)1859條經(jīng)驗(yàn) 獲得超6個(gè)贊
您可以過濾:
Quotation.objects.filter(items__item__projectitem__project=project)
您可以使用 來(lái).distinct()
確保每個(gè)Quotation
對(duì)象只返回一次:
Quotation.objects.filter(items__item__projectitem__project=project).distinct()
如果您希望Quotation
s僅引用project
,您可以使用.exclude(…)
,或者更直接地計(jì)算Project
s:
from django.db.models import Count, Q
Quotation.objects.annotate(
nproject=Count('items__item__projectitem__project', distinct=True),
nproject_project=Count(
'items__item__projectitem__project',
distinct=True,
filter=Q(items__item__projectitem__project=project)
),
).filter(
nproject_project=1,
nproject=1
).distinct()
注意:您的
QuotationItem
模型基本上就像[Django-doc]的直通模型,您可能想添加一個(gè)帶有此模型的參數(shù) [Django-doc]。這使得使用 Django ORM 查詢此類關(guān)系更加方便。ManyToManyField
ManyToManyField
through=…
添加回答
舉報(bào)