我正在做我的第一個Python項目(GAE),並且使用查詢操作GAE的數據庫沒有困難。但是當編輯單個實體時,我面臨一個問題。 我需要的只是一個簡單的計數器,它會在每次訪問時增加。 所以我創建一個實體(這樣做一次,只是爲了創造實體,那麼這段代碼是從項目中刪除)由:如何在GAE(Python)中編輯單個實體?
counter_name = 'default_counter'
def counter_key(counter_n=None):
return db.Key.from_path('Counter', counter_name)
class Counter(db.Model):
amount = db.IntegerProperty()
class CounterClass(webapp.RequestHandler):
def get(self):
counter = Counter(counter_key(counter_name))
counter.amount = 0
counter.put()
這是確定。 但是,當我試圖增加它,使用:
counter = db.get(db.Key.from_path('Counter', 'default_counter'))
counter.amount += 1
counter.put()
我得到這個錯誤。
ERROR 2011-09-06 21:49:41,562 _webapp25.py:464] 'NoneType' object has no attribute 'amount' Traceback (most recent call last): File "C:\Program Files (x86)\Google\google_appengine\google\appengine\ext\webapp_webapp25.py", line 703, in call handler.post(*groups) File "H:\gae-bin\counter.py", line 48, in post counter.amount += 1 AttributeError: 'NoneType' object has no attribute 'amount'
我檢查了不同的變化,但仍然不能改變實體的價值。 我在做什麼錯?
在此先感謝。
謝謝。 但是實體是無論如何創建的。我可以在數據庫索引中的localhost/_ah/admin中看到。 感謝您的鏈接。我會嘗試這些。 – momijigari
或者你也可以這樣做'Counter(key_name ='default_counter',amount = 0)' - 不需要指定整個鍵。 –