我有这两个模型:教程和章节。章节对它们所属的教程有一个重要的参考。现在我试图列出属于特定教程的所有章节,但我无法让查询工作:
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 的密钥......这可能不起作用......但我不知道其他方式