Je voudrais accéder au Foo
exemple foo
au sein de ma méthode de gestion baz
:Django: Comment accéder à l'instance d'origine à partir d'un RelationshipManager?
foo.bar_set.baz()
baz
aurait normalement prendre un argument de type 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
De cette façon, à la fois la première requête ci-dessus et la le suivant fonctionne de manière identique:
Bar.objects.baz(foo)
Bar
aurait un ForeignKey à Foo
:
class Bar(models.Model):
foo = models.ForeignKey(Foo)
objects = BarManager()
Non, ce n'est pas nécessaire. La méthode baz est déjà disponible sur Foo.bar_set – muhuk