チュートリアルとチャプターの 2 つのモデルがあります。各章には、その章が属するチュートリアルへの重要な参照があります。今、特定のチュートリアルに属するすべての章をリストしようとしていますが、クエリを機能させることができません:
class TutView(FuHandler):
def get(self):
tutKey = self.request.get('tut_key')
tut = db.Key.from_path('Tutorial', tutKey)
chaps = db.GqlQuery("SELECT * FROM Chapter " +
"WHERE __key__ = KEY('Tutorial', :1)", tut)
self.render('tutView.html', chaps=chaps)
実行すると、次のエラーが表示されます。
BadArgumentError: Expected an integer id or string name as argument 2;
received datastore_types.Key.from_path(u'Tutorial', u'<bound method
Tutorial.key of <main.Tutorial object at 0x00.............
チャプターモデル:
class Chapter(db.Model):
tutorial = db.ReferenceProperty(Tutorial, collection_name='chapters')
title = db.StringProperty(required=True)
content = db.TextProperty(required=True)
チュートリアル モデル:
class Tutorial(db.Model):
title = db.StringProperty(required=True)
presentation = db.TextProperty(required=True)
更新:エラーは発生しませんでしたが、結果は得られませんでした(おそらく間違っています):
chaps = db.GqlQuery("SELECT * FROM Chapter " +
"WHERE __key__ = KEY('tutorial', :1)", str(tutKey))
update2: 問題は、tutKey を保存または取得する方法にある可能性があります。私は URL でキーを取得しています...そしてそれはおそらく機能していません...しかし、私は他の方法を知りません