0
私は自分のキーを持つデータストアにレコードを作成しようとしました:db.run_in_transactionレコードで作成したキーを取得する方法は?
class Counter(db.Model):
counter = db.IntegerProperty()
def increase_counter(key):
obj = db.get(key)
if obj is None:
obj = Counter(key_name=key, counter=1)
else:
obj.counter += 1
obj.put()
db.run_in_transaction(increase_counter, "z"+intValue1+"_"+intValue2+"_"+intValue3)
それは動作しませんので、それはどのように私はのために作成されたキーを知ることができ、
BadKeyError: Invalid string key z523068_139840081_879156.
を返します。私の記録? db.run_in_transaction
でdb.Key()
を使用できますか?最初にカウンタを作成し、自動的に生成されたキーで値を増やすにはどうすればよいですか?
Upd。は、私はまた、次の試してみた:
def increase_counter(key):
if key is None:
obj = Counter(counter=1)
else:
obj = db.get(key)
obj.counter += 1
obj.put()
return obj.key()
db_counter_key = None # initially we don't have key value
for argument in files_arguments:
db_counter_key = db.run_in_transaction(increase_counter, db_counter_key)