[英]Django, filter distinct foreign keys where one result equals a value
我正在創建一個電視網站,上面有“人物”和“電視人物”表,第一個用於演員信息,第二個用於他們演出的演出信息。
一個節目中可能會出現同一演員的多次事件,因此電視人會成倍出現。 我想顯示電視節目的摘要,其字段值為'in_summary'= true
目前我有:
cast_summary = tvpeople.filter(in_summary=True)
然而,這帶來了同一電視人的倍數,例如
John Doe
John Doe
John Doe
根據'tvpeople.people.name'的區別,我不想收集多個同一個peson。
以下結果導致有關選擇無效的錯誤:
cast_summary = tvpeople.filter(in_summary=True).distinct('people.name')
任何想法如何做到這一點? 謝謝
在Django中, 遍歷關系使用__
而不是.
:
假設tvpeople
具有people
屬性,則查詢將為:
t_summary = tvpeople.filter(in_summary=True).distinct('people__name')
不過,從問題中的模型中發布相關代碼會有所幫助。
t_people = tvpeople.filter(in_summary=True).values('name').distinct()
將為您提供節目中人物姓名的唯一值(假設您的列標題為“姓名”)。 如果您希望有人反對,則可以執行以下操作:
people = people.filter(name__in=t_people).distinct()
假設您的數據庫不是很大,這應該可以滿足您的需求。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.