我们的团队对 AppEngine 来说相对较新,我们仍在学习中。我们使用普通的 ndb.Model 模型(即没有什么花哨的)和 webapp2 处理程序。该应用程序没有 UI,因为它只是一个安静的 API。
所以我们有一个这样定义的模型:
from google.appengine.ext import ndb
class Pasta(ndb.Model):
type = ndb.StringProperty(indexed=True)
name = ndb.StringProperty()
contents = ndb.JsonProperty()
modified_date = ndb.DateTimeProperty(auto_now=True)
added_date = ndb.DateTimeProperty(auto_now_add=True)
用例是,如果一条记录不存在,我们想添加一条记录,如果确实存在,则返回它。我们可以在处理程序中查询它,甚至在那里创建一个并使用pasta.put()
实例方法创建一个新的。但是,我们认为数据绑定代码属于模型,而不是处理程序,但是,如果我们没记错的话,在模型上下文中我们需要使用 ,get_or_insert()
这需要我们显式声明一个 Key,对吗?
有什么建议如何在模型中处理这种逻辑?TIA。