ミックスイン (mixin) を編集する¶
以下のミックスイン (mixin) は、Djangoの編集ビューを構築するのに使用されます。
django.views.generic.edit.FormMixindjango.views.generic.edit.ModelFormMixindjango.views.generic.edit.ProcessFormViewdjango.views.generic.edit.DeletionMixin
注釈
これらの編集ビューへの結合され方の例は、 ジェネリック編集ビュー (Generic editing view) を参照してください。
FormMixin¶
-
class
django.views.generic.edit.FormMixin¶ フォームを作成したり表示したりする機能を提供するmixinクラス。
ミックスイン
メソッドと属性
-
initial¶ フォームの初期化データのディクショナリ。
-
form_class¶ インスタンス化するフォームクラス。
-
success_url¶ フォームが正常に処理されたときにリダイレクトするURL。
-
get_form_class()¶ インスタンス化するフォームクラスを取得します。デフォルトでは
form_classです。
-
get_form(form_class=None)¶ get_form_kwargs()を使用してform_classのインスタンスを生成します。form_classが指定されていない場合はget_form_class()が使用されます。
-
get_form_kwargs()¶ フォームのインスタンス化に必要なキーワード引数を構築します。
引数
initialにはget_initial()を指定します。 リクエストがPOSTまたはPUTの場合、リクエストデータ (request.POSTとrequest.FILES) も提供されます。
-
get_success_url()¶ フォームのバリデーションに成功したときにリダイレクトする URL を特定します。 デフォルトでは
success_urlを返します。
-
form_valid(form)¶ get_success_url()にリダイレクトします。
-
form_invalid(form)¶ 無効なフォームをコンテキストとして提供し、レスポンスをレンダリングします。
-
get_context_data(**kwargs)¶ get_form()を呼び出して、その結果を "form" という名前でコンテキストデータに追加します。
-
ModelFormMixin¶
-
class
django.views.generic.edit.ModelFormMixin¶ 単独のフォームではなく
ModelFormsで動作するフォームミックスインです。これは
SingleObjectMixinのサブクラスなので、このミックスインのインスタンスはModelFormが操作するオブジェクトのタイプを記述してmodelとqueryset属性にアクセスできます。fields属性とform_class属性の両方を指定した場合、ImproperlyConfigured例外が発生します。ミックスイン
メソッドと属性
-
fields¶ フィールド名のリストです。これは
ModelFormのMeta.fields属性と同じように解釈されます。フォームクラスを自動生成する場合、この属性は必須です (
modelを使用するなど)。この属性を省略するとImproperlyConfigured例外が発生します。
-
success_url¶ フォームが正常に処理されたときにリダイレクトするURL。
success_urlは辞書文字列のフォーマットを含むことができ、オブジェクトのフィールド属性に対して補間されます。例えば、success_url="/polls/{slug}/"を使用すると、モデルのslugフィールドから構成される URL にリダイレクトできます。
-
get_form_class()¶ インスタンス化するフォームクラスを取得します。
form_classが指定されていれば、そのクラスが使用されます。そうでない場合は、querysetに関連付けられたモデルか、modelに関連付けられたモデルを使ってModelFormがインスタンス化されます。
-
get_form_kwargs()¶ 現在のインスタンス (
self.object) を標準のget_form_kwargs()に追加します。
-
get_success_url()¶ フォームのバリデーションに成功したときにリダイレクトする URL を特定します。指定されていれば
django.views.generic.edit.ModelFormMixin.success_urlを返し、指定されていなければオブジェクトのget_absolute_url()を使おうとします。
-
form_valid(form)¶ フォームインスタンスを保存し、ビューのカレントオブジェクトを設定し、
get_success_url()にリダイレクトします。
-
form_invalid(form)¶ 無効なフォームをコンテキストとして提供し、レスポンスをレンダリングします。
-
ProcessFormView¶
-
class
django.views.generic.edit.ProcessFormView¶ 基本的な HTTP GET および POST ワークフローを提供するミックスインです。
注釈
これは "ProcessFormView" という名前で、
django.views.generic.base.Viewを直接継承していますが、単独で使用すると壊れてしまうので、ミックスインとして扱う方が自然です。親クラス
メソッドと属性
-
get(request, *args, **kwargs)¶ get_context_data()で作成したコンテキストを使ってレスポンスをレンダリングします。
-
post(request, *args, **kwargs)¶ フォームを構築し、フォームのバリデーションを行い、それに応じて処理します。
-
DeletionMixin¶
-
class
django.views.generic.edit.DeletionMixin¶ HTTP アクション
DELETEの処理を有効にします。メソッドと属性
-
success_url¶ 指定したオブジェクトが正常に削除されたときにリダイレクトする URL。
success_urlは辞書文字列のフォーマットを含むことができ、オブジェクトのフィールド属性に対して補間されます。例えば、success_url="/parent/{parent_id}/"を使用すると、モデルのparent_idフィールドから構成される URL にリダイレクトできます。
-
delete(request, *args, **kwargs)¶ 対象のオブジェクトを取得し、その
delete()メソッドを呼び出して、success URL にリダイレクトします。
-
get_success_url()¶ 指定したオブジェクトが正常に削除された場合にリダイレクトする URL を返します。デフォルトでは
success_urlを返します。
-