簡體   English   中英

Django,過濾一個結果等於一個值的不同外鍵

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM