Une question simple et pourtant je ne trouve pas de réponse à cela.
J'ai un modèle avec un champ ManyToMany:
class Stuff(models.Model):
things = models.ManyToManyField(Thing)
alors dans une fonction différente je veux faire ceci:
myStuff = Stuff.objects.get(id=1)
for t in myStuff.things.all:
# ...
Mais cela me donne:
TypeError: 'instancemethod' object is not iterable
Comment puis-je itérer sur un manyToManyField?
Essayez d’ajouter le ()
après all
: myStuff.things.all()
ManyToManyField semble avoir un type de gestionnaire différent de celui de votre classe de base Django. En regardant la source ici, https://github.com/Django/django/blob/master/Django/db/models/fields/related_descriptors.py#L821 , il semble que vous recherchiez le champ related_val qui semble contenir le tuple de références d'objets liés.