私たちのチームはAppEngineに比較的慣れておらず、まだロープを学んでいます。プレーンなndb.Modelモデル(つまり、派手なものは何もない)とwebapp2ハンドラーを使用しています。このアプリは、安らかなAPIであるため、UIがありません。
したがって、次のように定義されたモデルがあります。
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()
キーを明示的に宣言する必要があるを使用する必要があります。
モデルでこの種のロジックを処理する方法について何か提案はありますか?TIA。