以下のミックスイン (mixin) は、Djangoの編集ビューを構築するのに使用されます。
django.views.generic.edit.FormMixindjango.views.generic.edit.ModelFormMixindjango.views.generic.edit.ProcessFormViewdjango.views.generic.edit.DeletionMixin注釈
これらの編集ビューへの結合され方の例は、 ジェネリック編集ビュー (Generic editing view) を参照してください。
FormMixin¶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¶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¶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¶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 を返します。
8月 06, 2024