我有两个班级:
class Nationality(Model):
name = models.Charfield()
class Person(Model):
name = models.Charfield()
nationality = ForeignKey("Nationality")
我希望以ModelChoiceField
以完全不同的形式显示Person
表中用作外键的那些国籍。实际上还有更多,但我只对那些用作现有Person
的外键的内容感兴趣。
此不,因为它返回带有fieldname和引用主键的dict。
Person.objects.values('nationality')
我希望返回Nationality
对象,以便我能够引用其name
属性。
我不想使用原始SQL,因为我的模型因多语言模块而变得更加复杂。
答案 0 :(得分:2)
您可以使用注释来过滤那些至少有一个人的国籍。
from django.db.models import Count
Nationality.objects.annotate(person_count=Count('person')).filter(person_count__gte=1)