我想用Python在AppEngine的MemCache中保存一个列表,我有下一个错误:
TypeError: new ()正好接受4个参数(给定1个)。
这是图像与错误的链接: http://i.stack.imgur.com/we3VU.png
这是我的代码:
def get_r_post_relation(self, url, update = False) :
sufix = "r"
key = sufix + url
list_version = memcache.get(key)
if not list_version or update :
logging.error("LIST VERSION QUERY")
postobj = get_wiki_post(url)
list_version = WikiPostVersion.query().filter(WikiPostVersion.r_post == postobj.key)
memcache.set(key, list_version)
return list_version
答案 0 :(得分:3)
您没有存储列表。您正在存储查询对象。要存储列表,请使用.fetch()
:
list_version = WikiPostVersion.query().filter(WikiPostVersion.r_post == postobj.key).fetch()
您可以存储一个简单的查询对象,但是当您添加.order()
或.filter()
时,您会收到一个酸洗错误。更改为列表,您已全部设置。
请记住,查询对象中没有任何实体。它只是一组指令,将在以后使用.get()
或.fetch()
时检索实体。所以,当你打算存储实际的实体列表时,你试图存储一个python命令集。