如何在GAE中使用get_or_insert?

时间:2014-04-06 16:40:10

标签: python google-app-engine

根据documentation我必须首先传入密钥,然后我将传递我想要初始化的所有属性,以便保存模型。所有这些都以** kwargs的形式完成。

定义似乎是这样的:

def _get_or_insert(*args, **kwds):

这是我打算使用它的方式,但它引发了异常:

record1, is_created = Record.get_or_insert(record_key, {'record_date' : event1.date_time, 'user' : user.key})

模型定义为:

class Record(ndb.Model):
    user = ndb.KeyProperty(kind=User)
    record_date = ndb.DateProperty(required=True)

例外:

  

文件   " /Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/ext/ndb/model.py" ;,   第3396行,位于_get_or_insert_async中       cls,name = args#这些必须始终是位置的。 ValueError:要解压缩的值太多

有什么建议吗?

1 个答案:

答案 0 :(得分:4)

kwargs应作为键/值对传递。尝试类似:

record1, is_created = Record.get_or_insert(record_key, record_date = event1.date_time,  user = user.key)