Back-reference
ReferencePropertyのBack-reference(逆参照)を試してみた。
from google.appengine.ext import db class FirstModel(db.Model): prop = db.IntegerProperty() class SecondModel(db.Model): ref = db.ReferenceProperty(FirstModel) obj1 = FirstModel(prop = 42) obj1.put() obj2 = SecondModel(ref = obj1) obj2.put() #for obj in obj1.FirstModel_set: #error. サンプル通り書いたつもりだけどダメ。 # print obj for obj in obj1.secondmodel_set: #OK print obj #for obj in obj1.SecondModel_set: #error. 小文字じゃないとダメらしい。 # print obj
これで動くみたい。
ドキュメントを読む限りでは、for obj in obj1.FirstModel_set と書くべきのように見えるのだけど、そういうわけではなさそう。もちろん、この書き方だと非常に不便というか筋が通らないので、おかしいなーと思いつつ検証してみたらやっぱりおかしかった。