我有两个型号。我们将它们称为对象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):
????
答案 0 :(得分: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()