我可以在Python中使用Google-AppEngine在Memcache中保存列表吗?

时间:2016-09-15 11:28:26

标签: python google-app-engine memcached

我想用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

1 个答案:

答案 0 :(得分:3)

您没有存储列表。您正在存储查询对象。要存储列表,请使用.fetch()

list_version = WikiPostVersion.query().filter(WikiPostVersion.r_post == postobj.key).fetch()

您可以存储一个简单的查询对象,但是当您添加.order().filter()时,您会收到一个酸洗错误。更改为列表,您已全部设置。

请记住,查询对象中没有任何实体。它只是一组指令,将在以后使用.get().fetch()时检索实体。所以,当你打算存储实际的实体列表时,你试图存储一个python命令集。