如何在Django模型中编写一个方法来检索相关对象?
问题描述:
我有两个模型。我们会打电话给他们反对A和B.反对它们的设计看起来是这样的:如何在Django模型中编写一个方法来检索相关对象?
class Foo(models.Model):
name = models.CharField()
class Bar(models.Model):
title = models.CharField()
Foo= models.ForeignKey('myapp.Foo')
现在,假如我想打一个返回引用美孚该实例的所有酒吧对象中富的方法。我该怎么做呢?
class Foo(models.Model):
name = models.CharField()
def returnBars(self):
????
答
你得到这个免费:
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()