我想在我的管理器方法 baz
中访问 Foo
实例 foo
:
foo.bar_set.baz()
baz
通常采用 Foo
类型的参数:
BarManager(models.Manager):
def baz(self, foo=None):
if foo is None:
# assume this call originates from
# a RelatedManager and set `foo`.
# Otherwise raise an exception
# do something cool with foo
这样,上面的第一个查询和下面的查询的工作原理是相同的:
Bar.objects.baz(foo)
Bar
将有一个 Foo
的外键:
class Bar(models.Model):
foo = models.ForeignKey(Foo)
objects = BarManager()
最佳答案
至少在 Django 2.1 中,您可以简单地执行以下操作:
foo.bar_set.instance
关于python - Django:如何从相关管理器访问原始实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1511256/