2

我有两个模型。我们称它们为对象 A 和对象 B。它们的设计如下所示:

class Foo(models.Model):
     name = models.CharField()

class Bar(models.Model):
     title = models.CharField()
     Foo= models.ForeignKey('myapp.Foo')

现在,假设我想在 Foo 中创建一个方法,该方法返回引用该 Foo 实例的所有 Bar 对象。我该怎么做呢?

class Foo(models.Model):
     name = models.CharField()
     def returnBars(self):
         ????
4

1 回答 1

10

你可以免费得到这个:

http://docs.djangoproject.com/en/dev/topics/db/queries/#backwards-related-objects

默认情况下,您可以访问管理器,该管理器使您可以通过RELATEDCLASSNAME_set属性访问相关项目:

some_foo.bar_set.all()

或者你可以使用related_name参数来ForeignKey指定应该持有反向关系管理器的属性:

class Foo(models.Model):
     name = models.CharField()

class Bar(models.Model):
     title = models.CharField()
     foo = models.ForeignKey(Foo, related_name='bars')

...

some_foo.bars.all()
于 2008-10-21T09:54:58.620 回答