1

我仍然掌握 Django 的窍门。例如,您有两个模型,其中一个使用 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)

在上面的示例中,我想访问特定的孩子并获取他的名字。我想通过父实例来做到这一点。例如,我有一个叫约翰的父母,我想知道他孩子的名字。我该怎么做?

如果这是一个简单的问题,请原谅我......

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

给定一个父对象parent = Parent.objects.get(name='John'),您可以通过 using 获取他的子对象children = Child.objects.filter(parent=parent_id),然后调用.name任何返回的对象即可:

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