Python Django,过滤不同的外键,其中一个结果等于一个值

Python Django,过滤不同的外键,其中一个结果等于一个值,python,django,django-models,Python,Django,Django Models,我正在创建一个电视网站,其中有“人物”和“电视人物”两个表格,第一个是演员信息,第二个是关于他们在节目中出现的信息 同一个演员在一个节目中可能会多次出现,因此电视观众的数量会成倍增加。我想显示字段值为'in_summary'=true的tvpeople的摘要 目前我有: cast_summary = tvpeople.filter(in_summary=True) 然而,它的输出带来了相同电视节目的成倍增长 John Doe John Doe John Doe 基于“tvpeople.peo

我正在创建一个电视网站,其中有“人物”和“电视人物”两个表格,第一个是演员信息,第二个是关于他们在节目中出现的信息

同一个演员在一个节目中可能会多次出现,因此电视观众的数量会成倍增加。我想显示字段值为'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')
有什么办法吗?谢谢你在Django

假设
tvpeople
具有
people
属性,则查询将为:

t_summary = tvpeople.filter(in_summary=True).distinct('people__name')
不过,在问题中发布模型中的相关代码会有所帮助。

在Django中:

t_people = tvpeople.filter(in_summary=True).values('name').distinct()
假设
tvpeople
具有
people
属性,则查询将为:

t_summary = tvpeople.filter(in_summary=True).distinct('people__name')
不过,在问题中发布模型中的相关代码会有所帮助

t_people = tvpeople.filter(in_summary=True).values('name').distinct()
将为您提供节目中人物姓名的唯一值(假设您的专栏标题为“name”)。如果需要人物对象,则可以执行以下操作:

people = people.filter(name__in=t_people).distinct()
假设您的数据库不是巨大的,这应该可以满足您的需要

将为您提供节目中人物姓名的唯一值(假设您的专栏标题为“name”)。如果需要人物对象,则可以执行以下操作:

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

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

这会出现例外“此数据库后端不支持不同的字段”(我使用的是mysql)仅供参考:people是外键。名称在people中table@damnyouiredmail您可能想看看这个django票据(或者只使用Postgres;)):使用
values\u list
应该可以,但可能不是您所需要的。这会出现例外“此数据库后端不支持不同的字段”(我使用的是mysql)。仅供参考:people是外键。姓名在people中table@damnyouiredmail您可能想看看这个django票据(或者只使用Postgres;)):使用
值\u list
应该可以,但可能不是您所需要的。