我想使用memcache來緩存從數據存儲retrevied的數據。儲存叮咬工作正常。但是不能存儲一個對象?我得到一個錯誤「類型錯誤:‘海峽’對象不是可調用」試圖用它來存儲時:使用memcache存儲obj的谷歌應用程序引擎
pageData = StandardPage(page)
memcache.add(memcacheid, pageData, 60)
我,它需要在文檔中寫着「值類型可以是由支持的任何值用於序列化值的Python pickle模塊。「但真的不明白那是什麼。或者如何將pageData轉換爲它。
任何想法?
..fredrik
編輯:
我有點不清楚。 PageType是一個類,它從數據存儲中獲取數據並對其進行操作。該類看起來像這樣:
class PageType():
def __init__(self, page):
self.pageData = PageData(data.Modules.gql('WHERE page = :page', page = page.key()).fetch(100))
self.modules = []
def renderEditPage(self):
self.addModules()
return self.modules
class StandardPage(PageTypes.PageType):
templateName = 'Altan StandardPage'
templateFile = 'templates/page.html'
def __init__(self, page):
self.pageData = PageTypes.PageData(data.Modules.gql('WHERE page = :page', page = page.key()).fetch(100))
self.modules = []
self.childModules = []
for child in page.childPages:
self.childModules.append(PageTypes.PageData(data.Modules.gql('WHERE page = :page', page = child.key()).fetch(100)))
def addModules(self):
self.modules.append(PageTypes.getStandardHeading(self, 'MainHeading'))
self.modules.append(PageTypes.getStandardTextBox(self, 'FirstTextBox'))
self.modules.append(PageTypes.getStandardTextBox(self, 'SecondTextBox'))
self.modules.append(PageTypes.getStandardHeading(self, 'ListHeading'))
self.modules.append(PageTypes.getStandardTextBox(self, 'ListTextBox'))
self.modules.append(PageTypes.getDynamicModules(self))
能否請您包括完整的堆棧跟蹤?你粘貼的任何東西都不能解釋你報告的異常情況。 – 2010-04-15 14:54:35
你是對的,它是在其他方法失敗。我使用了另一個類的實例(女巫不需要)或將其更改爲data = {}。它的工作! – fredrik 2010-04-16 12:19:26