イントロダクションAppEngineはベースモデルクラス google.appengine.ext.db.Model を提供します。 つまり、これを拡張したり、データ上で動作する役立つメソッドを追加するだけです。 gaeo.model.BaseModel を拡張して、自分のモデルを作成できます。 このクラスは google.appengine.ext.db.Model を拡張しています。 そのため、このモデル自身のメソッドと、BaseModel のメソッドが使用可能です。 例えば、以下のように記述できます。 from google.appengine.ext import db from gaeo.model import BaseModel
class Foo(BaseModel):
x = db.StrringProperty() y = db.IntegerProperty()
クラスリファレンス このメソッドは、他のモデルへの 多対1接続を作成します。 例えば、2モデルを定義した場合、以下のようになります。
# application/model/post.py from google.appengine.ext import db from gaeo.model import BaseModel
class Post(BaseModel):
author = db.StringProperty() title = db.StringProperty() content = db.TextProperty() post_at = db.DateTimeProperty(auto_now_add=True)
# application/model/comment.py from google.appengine.ext import db from gaeo.model import BaseModel
from model.post import Post
class Comment(BaseModel) :
author = db.StringProperty() comment = db.TextProperty() left_at = db.DateTimeProperty(auto_now_add=True)
つまり、このメソッドは Comment クラスに 'post' という名前の ReferenceProperty) を作成し、 'comments' の Post クラス内のコレクション名としてセットされます。 つまり、post を参照する comment インスタンスから、post 内の変数を使用できますし、 comment を参照する post インスタンスから comments が使用できます。
インスタンスメソッド- update_attributes(self, kwd_dict = {}, **kwd)
このメソッドは、かつて同時に複数の属性をセットしなければなりませんでした。 基本的に以下のように書いていたでしょう。
m.x = 123 m.y = 'abc' m.z = 'foo@example.com' m.put()
このメソッドを使用すると、以下のようになります。
m.update_attribute(x=123, y='abc', z='foo@example.com')
このメソッドは自動的に最後に put メソッドを呼び出します。
- set_attribute(self, kwd_dict = {}, **kwd)
update_attirbutes メソッドと同様ですが、 put メソッドは自動的に呼び出されません。
put メソッドのエイリアス
put メソッドのエイリアス
|