我有两个模型。我们称它们为对象 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):
????
最佳答案
你可以免费得到这个:
http://docs.djangoproject.com/en/dev/topics/db/queries/#backwards-related-objects
默认情况下,您可以访问一个管理器,该管理器允许您通过 RELATEDCLASSNAME_set
属性访问相关项目:
some_foo.bar_set.all()
或者您可以使用 ForeignKey
的 related_name
参数来指定应持有反向关系管理器的属性:
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()
关于python - 如何在 Django 模型中编写方法来检索相关对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/221328/