一个简单的问题,但我找不到答案。
我有一个带有ManyToMany字段的模型:
class Stuff(models.Model):
things = models.ManyToManyField(Thing)
然后在另一个函数中我想这样做:
myStuff = Stuff.objects.get(id=1)
for t in myStuff.things.all:
# ...
但是这给了我:
TypeError: 'instancemethod' object is not iterable
如何迭代manyToManyField?
答案 0 :(得分:73)
尝试在()
之后添加all
:myStuff.things.all()
答案 1 :(得分:0)
ManyToManyField似乎与基本的Django类有不同的Manager。看一下这里的源代码https://github.com/django/django/blob/master/django/db/models/fields/related_descriptors.py#L821,看来你正在寻找的related_val字段似乎包含了相关对象引用的元组。
答案 2 :(得分:-1)
像Abid A已经回答过,你缺少括号()
for t in myStuff.things.all():
print t.myStuffs.all()