1

我正在创建一个电视网站,其中有“人”和“电视人”表,第一个用于演员信息,第二个用于有关他们制作的节目中的露面信息。

同一个演员在一个节目中可以多次出现,所以电视人的数量会很多。我想显示具有字段值 'in_summary'=true 的 tvpeople 的摘要

目前我有:

cast_summary = tvpeople.filter(in_summary=True)

然而,这个输出带来了相同的电视人的倍数,例如

John Doe
John Doe
John Doe

基于“tvpeople.people.name”的不同值,我不想收集超过一个相同的人。

以下导致选择无效的错误:

cast_summary = tvpeople.filter(in_summary=True).distinct('people.name')

任何想法如何做到这一点?谢谢

4

2 回答 2

1

在 Django 中,遍历关系是使用__,而不是.

假设它tvpeople有一个people属性,那么查询将是:

t_summary = tvpeople.filter(in_summary=True).distinct('people__name')

不过,在问题中发布模型中的相关代码会有所帮助。

于 2013-08-27T19:22:13.447 回答
0
t_people = tvpeople.filter(in_summary=True).values('name').distinct()

将为您提供节目中人物姓名的唯一值(假设您的列标题为“姓名”)。如果你想要人的对象,你可以这样做:

people = people.filter(name__in=t_people).distinct()

假设您的数据库不是巨大的,这应该可以满足您的需要。

于 2014-02-05T18:45:36.693 回答