我想在我的gae中擁有獨特的價值,所以我通過文檔閱讀並發現「交易」是原子的。GAE - 祖先問題
https://developers.google.com/appengine/docs/python/ndb/transactions
class Account(ndb.Model):
""""Required DB """
username = ndb.StringProperty(required=True)
password = ndb.StringProperty(required=True)
mail = ndb.StringProperty(required=True)
salt = ndb.StringProperty(required=True)
date = ndb.DateTimeProperty(auto_now_add=True)
name = ndb.StringProperty()
last_name = ndb.StringProperty()
phone_number = ndb.IntegerProperty()
postal = ndb.IntegerProperty()
city = ndb.StringProperty()
products = ndb.IntegerProperty(repeated=True)
@ndb.transactional
def create_account(self):
acc = Account.query(Account.username==self.username)
acc = tuple(acc)
if len(acc)== 0:
self.put()
else:
#yield error
pass
我awalys得到同樣的錯誤
BadRequestError:
Only ancestor queries are allowed inside transactions.
我的數據庫模型 「帳戶」 沒有任何祖先。 它不應該是唯一的「祖先」嗎?
您在事務中進行查詢。你的查詢沒有'ancestor'。錯誤似乎是一致的 – 2012-07-08 20:03:17
所以我不允許在事務內進行查詢?然後,我認爲我知道的唯一方法是將內容放在內存緩存中(我認爲內存緩存也應該是原子的) – 2012-07-09 10:31:42
我沒有足夠的知識來充分響應您的問題,但是我的計算屬性存在相同的問題( s):這會進行查詢並返回一個簡單的總和。我不得不刪除所有交易 並直接投入繼續發展。在你的情況下嘗試沒有裝飾者..我們將有更好的答案 – 2012-07-09 12:30:32