簡體   English   中英

如何遍歷 ManyToManyField?

[英]How can I iterate over ManyToManyField?

一個簡單的問題,但我找不到答案。

我有一個帶有 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 ?

嘗試添加() allmyStuff.things.all()

就像 Abid A 已經回答了一樣,您缺少括號 ()

for t in myStuff.things.all():
    print t.myStuffs.all()

ManyToManyField 似乎有一種與您的基本 Django 類不同的 Manager。 在這里查看源代碼https://github.com/django/django/blob/master/django/db/models/fields/related_descriptors.py#L821 ,您似乎正在尋找 related_val 字段,該字段似乎包含相關對象引用的元組。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM