我正在创建一个电视网站,其中有'人'和'电视'表,第一个是演员信息,第二个是关于他们制作的节目中的外观信息。
在一场演出中可能会有多次出现同一个演员,所以电视剧的倍数。我希望显示具有字段值'in_summary'= true
的tvpeople摘要目前我有:
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')
任何想法如何做到这一点?感谢
答案 0 :(得分:1)
在Django,traversing relationship is done using __
, not .
:
假设tvpeople
具有people
属性,则查询将为:
t_summary = tvpeople.filter(in_summary=True).distinct('people__name')
在问题中发布模型中的相关代码会有所帮助。
答案 1 :(得分:0)
t_people = tvpeople.filter(in_summary=True).values('name').distinct()
会为您提供展会中人员姓名的唯一值(假设您的专栏标题为' name')。如果你想要人物对象,你可以这样做:
people = people.filter(name__in=t_people).distinct()
假设您的数据库不是巨大的,那么这应该可以满足您的需求。