0

私は2つのクラスを持っています:

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

注釈を使用して、少なくとも 1 人の人物がいる国籍をフィルタリングできます。

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