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.Key()
可以與db.run_in_transaction
一起使用嗎?我應該如何首次創建計數器,然後使用自動生成的密鑰增加值?
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)