1

私はまだDjangoのコツをつかんでいます。たとえば、2 つのモデルがあり、そのうちの 1 つが ForeignKey を使用して他のモデルに関連付けられているとします。

class Parent(models.Model):
   name = models.CharField(max_length=255)
   birthday= models.DateField(blank=True,null=True)

class Child(models.Model):
   name = models.CharField(max_length=255)
   parent= models.ForeignKey(Parent)

上記の例では、特定の子供にアクセスして名前を取得したいと考えています。親インスタンスを通じてそれを行いたいと思います。たとえば、John という名前の親がいて、彼の子供の名前を知りたいとします。どうすればいいのですか?

素朴な質問ですみません…

4

2 に答える 2

4

以下のコードはあなたの質問に対応しています。child_setは関連するマネージャのデフォルト名であることに注意してください。詳細については、https://docs.djangoproject.com/en/dev/ref/models/relations/を参照してください。

john = Parent.objects.get(name='John')
johns_children = john.child_set.all()
# Print names of his children
for child in johns_children:
    print child.name
# Get child named Jack
jack = john.child_set.get(name='jack')
# Filter children by gender
jack = john.child_set.filter(gender='F')
...
于 2012-08-23T05:02:16.560 に答える
1

親 object が与えられた場合parent = Parent.objects.get(name='John')、 を使用して彼の子を取得できます。返されたオブジェクトのいずれかchildren = Child.objects.filter(parent=parent_id)を呼び出すだけです。.name

for child in children:
    print child.name
于 2012-08-23T05:02:45.473 に答える