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()

結果はNoneです。なんで?

2)キーではなく、key_idでこのクエリを作成するにはどうすればよいですか?(このようなもの:

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 に答える