一般的な編集ビュー—Djangoドキュメント
一般的な編集ビュー
このページでは、次のビューについて説明し、コンテンツを編集するための基盤を提供します。
django.views.generic.edit.FormView
django.views.generic.edit.CreateView
django.views.generic.edit.UpdateView
django.views.generic.edit.DeleteView
ノート
このページのいくつかの例は、Author
モデルがmyapp/models.py
で次のように定義されていることを前提としています。
FormView
- class django.views.generic.edit.FormView
フォームを表示するビュー。 エラーの場合、検証エラーのあるフォームを再表示します。 成功すると、新しいURLにリダイレクトします。
祖先(MRO)
このビューは、次のビューからメソッドと属性を継承します。
django.views.generic.edit.BaseFormView
例myapp / forms.py :
例myapp / views.py :
例myapp / contact.html :
CreateView
- class django.views.generic.edit.CreateView
オブジェクトを作成し、検証エラー(存在する場合)を含むフォームを再表示し、オブジェクトを保存するためのフォームを表示するビュー。
祖先(MRO)
このビューは、次のビューからメソッドと属性を継承します。
django.views.generic.detail.SingleObjectTemplateResponseMixin
django.views.generic.edit.BaseCreateView
属性
- template_name_suffix
GET
リクエストに対して表示されるCreateView
ページは、'_form'
のtemplate_name_suffix
を使用します。 たとえば、例のAuthor
モデルのオブジェクトを作成するビューで、この属性を'_create_form'
に変更すると、デフォルトのtemplate_name
は'myapp/author_create_form.html'
になります。
- object
CreateView
を使用すると、作成中のオブジェクトであるself.object
にアクセスできます。 オブジェクトがまだ作成されていない場合、値はNone
になります。
例myapp / views.py :
例myapp / author_form.html :
UpdateView
- class django.views.generic.edit.UpdateView
既存のオブジェクトを編集し、検証エラー(存在する場合)を使用してフォームを再表示し、オブジェクトへの変更を保存するためのフォームを表示するビュー。 これは、オブジェクトのモデルクラスから自動的に生成されたフォームを使用します(フォームクラスが手動で指定されている場合を除く)。
祖先(MRO)
このビューは、次のビューからメソッドと属性を継承します。
django.views.generic.detail.SingleObjectTemplateResponseMixin
django.views.generic.edit.BaseUpdateView
属性
- template_name_suffix
GET
リクエストに対して表示されるUpdateView
ページは、'_form'
のtemplate_name_suffix
を使用します。 たとえば、例のAuthor
モデルのオブジェクトを更新するビューの場合、この属性を'_update_form'
に変更すると、デフォルトのtemplate_name
は'myapp/author_update_form.html'
になります。
- object
UpdateView
を使用すると、更新されるオブジェクトであるself.object
にアクセスできます。
例myapp / views.py :
例myapp / author_update_form.html :
DeleteView
- class django.views.generic.edit.DeleteView
確認ページを表示し、既存のオブジェクトを削除するビュー。 指定されたオブジェクトは、リクエストメソッドが
POST
の場合にのみ削除されます。 このビューがGET
を介してフェッチされると、同じURLにPOSTするフォームを含む確認ページが表示されます。祖先(MRO)
このビューは、次のビューからメソッドと属性を継承します。
django.views.generic.detail.SingleObjectTemplateResponseMixin
django.views.generic.edit.BaseDeleteView
django.views.generic.detail.BaseDetailView
属性
- template_name_suffix
GET
リクエストに対して表示されるDeleteView
ページは、'_confirm_delete'
のtemplate_name_suffix
を使用します。 たとえば、例のAuthor
モデルのオブジェクトを削除するビューの場合、この属性を'_check_delete'
に変更すると、デフォルトのtemplate_name
は'myapp/author_check_delete.html'
になります。
例myapp / views.py :
例myapp / author_confirm_delete.html :