2014年5月25日日曜日

モデルからフォームを生成する

既に存在するモデルの構造からフォームを生成する際、以下のようにする。
なお、以下の例では、モデル Ticket に対するフォームを作成する。
from django.forms import ModelForm
class TicketRequestForm(ModelForm):
  class Meta:
    model = Ticket
モデルを利用する場合、フォームから入力する値とシステムが決定する値が混在する場合がある。

たとえば、例として挙げた Ticket が登録時分秒(entrytime)を持っており、システムが決定する値だとする。
このとき、フォームから値を取得する際、instance 変数へ初期値を与えたオブジェクトを与える。
entrytime = datetime.datetime.today()
ticket = Ticket(entrytime = entrytime)
ticketrequestform = TicketRequestForm(request.POST, instance = ticket)

0 件のコメント:

コメントを投稿