Eine einfache Frage und trotzdem finde ich keine Antwort darauf.
Ich habe ein Modell mit einem ManyToMany-Feld:
class Stuff(models.Model):
things = models.ManyToManyField(Thing)
dann in einer anderen Funktion möchte ich das tun:
myStuff = Stuff.objects.get(id=1)
for t in myStuff.things.all:
# ...
Aber das gibt mir:
TypeError: 'instancemethod' object is not iterable
Wie kann ich ein manyToManyField durchlaufen?
Versuchen Sie, den ()
nach all
: myStuff.things.all()
hinzuzufügen.
ManyToManyField scheint eine andere Art von Manager zu haben als Ihre grundlegende Django-Klasse. Wenn Sie hier auf die Quelle schauen, https://github.com/Django/django/blob/master/Django/db/models/fields/related_descriptors.py#L821 , scheint es, dass Sie nach dem Feld related_val suchen scheint das Tupel der verwandten Objektverweise zu enthalten.