最近の更新履歴

このドキュメントについて

現在、このドキュメントは翻訳中です。翻訳は「伊藤 哲之輔」が2008/1 に開始しました。リンクのテキストに英語を含むものについては、リンク先はまだ英語版であることを意味しています。

誤訳等の指摘についてはhttp://tetsunosukelab.appspot.com/contact へお寄せください。

2009/3 共同執筆にTakayo Hamasaki氏を迎えました。今後とも充実させていこうと思います。

最新情報

  • 誤訳指摘用メールフォームを作成しました。
  • 日本版用のコンテンツを作成していこうと思います
  • チュートリアルの和訳完了
その後はクラスリファレンスの和訳を予定しています。クラスリファレンスそのものが全てそろっていないのでどうしたものか・・・とは思いますが。

なお、公式ドキュメントにてToDoアプリケーションの記事が開始されたようです。追って和訳します。

model.BaseModel

イントロダクション

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()

クラスリファレンス

  • メンバ

  • メソッド

    • クラスメソッド

      • belongs_to(cls, ref_cls)
このメソッドは、他のモデルへの 多対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.belongs_to(Post)

つまり、このメソッドは 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 メソッドは自動的に呼び出されません。

      • save(self)
put メソッドのエイリアス
      • update(self)
put メソッドのエイリアス