0

1)当我执行这个查询时:

contract_record = Contract(book_number = 42, initial_page = 420, final_page = 442)
contract_record.put()
contract_key = contract_record.key()
contract = db.GqlQuery("SELECT * FROM Contract WHERE __key__ = KEY('Contract', '$[contract_key]')").get()

结果是无。为什么?

2)如何通过key_id而不是key进行查询?(像这样:

contract_id = contract_record.key().id()
contract = db.GqlQuery("SELECT * FROM Contract WHERE __key__ = KEY('Contract', '$[contract_id]')").get()

谢谢你的帮助!

4

2 回答 2

6

应该是什么'$[contract_key]'?你想在这里做某种字符串替换吗?这真的不是它的工作原理。也许您的意思是使用%s运算符?

无论如何,我真的不明白你为什么坚持通过 GQL 进行查询。通过键获取对象的方法是直接使用get

contract = db.get(contract_key)

对于密钥 ID:

contract = Contract.get_by_id(id)
于 2012-07-09T13:50:50.007 回答
1

也许这不是您正在寻找的答案,但您可以试试这个:

contract_record = Contract(book_number = 42, initial_page = 420, final_page = 442)
contract_record.put()
contract_key = contract_record.key()
contract = db.get(contract_key)
于 2012-07-09T13:50:19.513 回答