Python 我如何迭代多个域?

Python 我如何迭代多个域?,python,database,django,orm,model,Python,Database,Django,Orm,Model,一个简单的问题,但我找不到答案 我有一个具有多个字段的模型: 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

一个简单的问题,但我找不到答案

我有一个具有多个字段的模型:

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

如何迭代多个域?

尝试在
all
之后添加
()
myStuff.things.all()
就像Abid a已经回答过一样,您缺少括号()


ManyToManyField似乎有一种不同于您的基本Django类的经理。查看此处的源代码,您似乎正在查找相关值字段,该字段似乎包含相关对象引用的元组。

为什么要重复它?你的例子被打破了。。。你想打印什么(结尾有一个冒号)?那时我没有在这里写评论的权限,我的目的是展示一个真实的工作示例,用于循环打印所有你无法显示的内容。冒号的存在是因为在Python中for循环总是需要冒号!我想我指的是你删掉的额外冒号。但很公平。。。我发现完整的例子更容易理解。“instancemethod对象”应该告诉你它是一个方法(需要括号),而不是一个iterable。在模板中使用
myStuff.things.all
(省略())啊,我犯了一个错误,Abid a的答案实际上是有效的$
for t in myStuff.things.all():
    print t.myStuffs.all()