0

我有两节课:

class Nationality(Model):
    name = models.Charfield()

class Person(Model):
    name = models.Charfield()
    nationality = ForeignKey("Nationality")

我想以ModelChoiceField完全不同的形式仅显示那些在表中用作外键的国籍Person。实际上还有更多,但我只对那些用作现有Person.

不起作用,因为它返回一个带有字段名和引用主键的字典。

Person.objects.values('nationality')

我希望Nationality返回对象,以便能够引用它的name属性。

我不想使用原始 SQL,因为我的模型因多语言模块而更加复杂。

4

1 回答 1

2

您可以使用注释来过滤那些至少有一个人的国籍。

from django.db.models import Count
Nationality.objects.annotate(person_count=Count('person')).filter(person_count__gte=1)
于 2012-04-25T13:36:15.247 回答