我正在尝试进行比较密钥的查询,但我没有得到任何结果。
我有一个教程和章节模型。章节模型包含了一种类型教程的关键属性。 (tutKey = ndb.KeyProperty(kind='Tutorial')
)
tutID = self.request.cookies.get('tut_id', '')
tutIns = ndb.Key('Tutorial', int(tutID)).get()
chaps = Chapter.query(Chapter.tutKey == tutIns.key)
self.render('editTut.html', chaps=chaps, tutins=tutIns.key)
我发送tutIns.key
只是为了测试实例是否正常工作,是的,它会返回密钥(Key('Tutorial', 1)
)。此外,如果我只进行查询Chapter.query(),它会按预期返回所有章节。
这就是我将tutkey存储在章节中的方式:
tutID = self.request.cookies.get('tut_id', '')
tutorial = ndb.Key('Tutorial', tutID)
.
.
.
chap = Chapter(tutKey=tutorial, title=title, content=content,
note=note, order=order)
chap.put()
在开发控制台中,我可以看到存储在chapter1和chapter2中的tutkey是相同的键,但该键不等于教程键。我是以错误的方式创建这一章?
答案 0 :(得分:3)
在这里,您将ID转换为int:
tutIns = ndb.Key('Tutorial', int(tutID)).get()
但是在这里,你将它用作字符串:
tutID = self.request.cookies.get('tut_id', '')
tutorial = ndb.Key('Tutorial', tutID)
生成的Key实例不相等。