ソースコードから理解する技術-UnderSourceCode

手を動かす(プログラムを組む)ことで技術を理解するブログ

Django on Google App Engine-サンプルコード django_example(4)Model層

django_expamleではModel-View-TemplateのModelとViewはview.pyに実装しています。
ちなみにTemplateはtemplatesフォルダ内のファイルに実装しています。
今回はModel層についてです。

まず、Modelのソースです。


class Gift(db.Model):
name = db.StringProperty(required=True)
giver = db.UserProperty()
recipient = db.StringProperty(required=True)

description = db.TextProperty()
url = db.URLProperty()
created = db.DateTimeProperty(auto_now_add=True)
modified = db.DateTimeProperty(auto_now=True)


データを格納するためのGiftクラスは、db.Modelクラスを継承しています。
そして保持する各項目の名前、初期値や属性を定義しています。


次にModelのよりフォームを生成するためのGiftFormクラスです。


class GiftForm(djangoforms.ModelForm):
class Meta:
model = Gift
exclude = ['giver', 'created', 'modified']

Modelよりフォームを生成するためのModelFormヘルパークラスを継承しています。
またGiftFormクラスのMeta内部クラスで、execute属性を使用して
フォームに表示しないフィールドを指定しています。