1 2 3 4 5 6 7 8 9 10 11 12 13 | from django.forms import ModelForm from django.db import models class Mail(models.Model): name = CharField() address = EmailField(blank=True, null=True , help_text=u"please input email address.") time = DateTimeField(blank=True, null=True) class MailForm(ModelForm): class Meta: model = Mail fields = ('name', 'address') # exclude = ('time') |
上記例では、Mailモデルクラス用のフォームMailFormをModelFormの機能を利用して作成しています。 MailFormの自動生成を行う上で最低限必要な設定は「model = Mail」のみで、fieldsやexcludeは フォームとして生成したくないカラムが派生元のモデルクラス(ここではMail)に存在する場合に限って使います。
help_text属性には、文字列を定義します。
これは、フォームを生成した際の小見出し部分に表示される
文字列に該当します。
また、モデル側で「blank=True, null=True」と設定したカラムはフォームが生成された際に、
必須フィールドではなくなります。
つまり、formsの「required=False」と同じです。 なお、この機能はDjango v1.0からの機能であり、それ以前はform_for_model()なるメソッドが 存在していたようです。現在は、上記方法が正しいので注意してください。