簡単な質問ですが、答えが見つかりません。
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をどのように反復できますか?
all
の後に_()
_を追加してみてください:myStuff.things.all()
ManyToManyFieldには、基本的なDjangoクラスとは異なる種類のマネージャーがあるようです。ここでソースを見ると、 https://github.com/Django/django/blob/master/ Django/db/models/fields/related_descriptors.py#L821 、関連オブジェクト参照のタプルを含むように見えるrelated_valフィールドを探しているようです。
Abid Aが既に回答したように、括弧()が欠落しています
for t in myStuff.things.all():
print t.myStuffs.all()