我正在使用PersonEditHandler類中的tipfy編輯Person實體。我有 的get()和post()方法形成的,但是當我引用self.person (檢查是否得到方法發現關鍵現有的人),我得到一個 「對象沒有屬性'錯誤。正確編輯tipfy中的現有實體的方法
這是因爲我從來沒有在初始化方法來初始化它,因爲我是從RequestHandler和Jinja2Mixin繼承。然而,當我重寫初始化,我得到另一個錯誤:'類型錯誤:初始化()恰恰1個參數(3給出)'
下面是代碼:
class PersonEditHandler(RequestHandler, Jinja2Mixin):
def __init__(self):
PersonEditHandler.__init__(self)
# ...or 'super(PersonEditHandler, self).__init__()'
self.person = None
上午我因爲多重繼承而遇到麻煩?什麼是最好的 方式來編輯tipfy檢索記錄而不創建一個新的?
謝謝,亞歷克斯。我其實已經試過了。問題在於它看起來不像Tipfy的Handlers在get()和post()方法之間持久化項目。例如,如果我得到一個實體並將其作爲self.person存儲在get中,我不能在post()中引用self.person;相反,我必須再次獲得實體。有人說我應該使用memcache來完成這個任務。我會怎麼做? – 2010-08-02 11:44:56
@Wraith,這不是關於提示 - 每個GAE請求實例化一個全新的處理程序;但是在'__init__'中將'.person'設置爲'None'將會毫無用處(我現在看到它是因爲你提到「在get和post之間存在」 - 不是關於_methods_,如果你從另一個你仍然會發現一切都完好無損!,它就是成爲一個新的**實例**!)。只要知道POST中的密鑰,就可以將密鑰/人員對存儲在memcache中(在GET中)並檢查它是否存在(在POST中)。但是這個Q關注的是完全顯示錯誤的(不相關的)代碼,請問另一個! - ) – 2010-08-02 14:35:34
再次感謝您的傑出答案,Alex。我在這裏發佈了一個新問題http://stackoverflow.com/questions/3392990/how-do-i-store-a-fetched-entity-in-memcache-for-app-engine – 2010-08-03 01:24:59