Goro Goro - 2 months ago 14
Python Question

How can I iterate over ManyToManyField?

A simple question and yet I can't find an answer for it.

I have a model with a ManyToMany field:

class Stuff(models.Model):
things = models.ManyToManyField(Thing)


then in a different function I want to do this:

myStuff = Stuff.objects.get(id=1)
for t in myStuff.things.all:
# ...


But that is giving me:

TypeError: 'instancemethod' object is not iterable


How can I iterate over a manyToManyField ?

Answer

Try adding the () after all: myStuff.things.all()

Comments