アーカイブ: 2009年9月25日
DjangoのManyToManyでハマッタ
ことだまんです。
ViewやTemplate内でリレーション先のオブジェクトをループ参照などすると
ManyRelatedManager' object is not iterable
イテレーターオブジェクトじゃないよ。
っと怒られました。
多対多テーブルにクエリーを投げてあげないと中身がないんでエラーになるようですな。
とりあえずView内で参照したい場合は
object.hoge.all()
などとして評価してあげないといけない。
ちなみにテンプレート内では
{{ object.hoge.all }}
のようにしてあげれば評価可能。
自分のメモ用に断片コードをのせておく。(View内)
taggroup = TagGroupM.objects.all()
for tag_g in taggroup:
print tag_g.Name
for tag in tag_g.TagID.all():
print tag.Name
print '-----------'
相変わらずインデントしてソースを載せられないと言ってみるテストwww