2016-09-15 6 views
1

私は、PythonでのAppEngineでmemcacheの内のリストを保存したいと、私は次のエラーが午前:PythonでGoogle App EngineのMemcacheにリストを保存することはできますか?

はTypeError:新しい()は、正確に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

これはエラーです。TypeError:new()は4つの引数(1が指定された)をとります。 –

+0

27行目はどちらですか? –

答えて

3

あなたはリストを格納されていません。クエリオブジェクトを格納しています。リストを保存するには、.fetch()を使用します。

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

をあなたは、単純なクエリオブジェクトを保存することができますが、.order().filter()を追加するとき、あなたは酸洗エラーが発生します。リストに変更すると、すべて設定されます。

クエリオブジェクトにはエンティティが含まれていないことに注意してください。これは後で.get()または.fetch()で使用するとエンティティを取得して取得するための一連の命令です。したがって、実際のエンティティリストを格納することを意図しているときは、Pythonコマンドセットを格納しようとしています。

+0

それは動作します!、大変ありがとう、私の頭痛の私を保存:-) @ GAEfan。あなたのための5つの星XD。 –

関連する問題