Django ModelChoiceField:仅获取在另一个对象中用作外键的对象
我有两门课:Django ModelChoiceField:仅获取在另一个对象中用作外键的对象,django,django-queryset,Django,Django Queryset,我有两门课: class Nationality(Model): name = models.Charfield() class Person(Model): name = models.Charfield() nationality = ForeignKey("Nationality") 我想在modelcooicefield中以完全不同的形式显示Person表中用作外键的国籍。实际上还有很多,但我只对那些用作现有人员的外键的内容感兴趣 这不起作用,因为它返回一个带
class Nationality(Model):
name = models.Charfield()
class Person(Model):
name = models.Charfield()
nationality = ForeignKey("Nationality")
我想在modelcooicefield
中以完全不同的形式显示Person
表中用作外键的国籍。实际上还有很多,但我只对那些用作现有人员的外键的内容感兴趣
这不起作用,因为它返回一个带有字段名和引用主键的dict
Person.objects.values('nationality')
我希望返回国籍
对象,以便能够引用其名称
属性
我不想使用原始SQL,因为我的模型由于多语言模块而变得更加复杂。您可以使用注释来筛选至少有一个人的国籍
from django.db.models import Count
Nationality.objects.annotate(person_count=Count('person')).filter(person_count__gte=1)
成功了!由于什么魔力,我不知道,但它确实起了作用。我的意思是Count
如何知道人
,因为这种关系是基于人
?我想我必须读一些关于聚合的文章!非常感谢!!!是的,聚合文档是,但是如果你还不知道的话,一定要仔细阅读。