ミックスイン (mixin) を編集する

以下のミックスイン (mixin) は、Djangoの編集ビューを構築するのに使用されます。

注釈

これらの編集ビューへの結合され方の例は、 ジェネリック編集ビュー (Generic editing view) を参照してください。

FormMixin

class django.views.generic.edit.FormMixin

フォームを作成したり表示したりする機能を提供するmixinクラス。

ミックスイン

メソッドと属性

initial

フォームの初期化データのディクショナリ。

form_class

インスタンス化するフォームクラス。

success_url

フォームが正常に処理されたときにリダイレクトするURL。

prefix

生成されるフォームの prefix

get_initial()

フォームの初期データを取得します。デフォルトでは、 initial のコピーを返します。

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.POSTrequest.FILES) も提供されます。

get_prefix()

生成されるフォームの prefix を特定します。 デフォルトでは prefix を返します。

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 が操作するオブジェクトのタイプを記述して modelqueryset 属性にアクセスできます。

fields 属性と form_class 属性の両方を指定した場合、 ImproperlyConfigured 例外が発生します。

ミックスイン

メソッドと属性

model

モデルクラス。明示的に指定することもできますが、そうでない場合は self.object または queryset を調べて決定されます。

fields

フィールド名のリストです。これは ModelFormMeta.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)

フォームを構築し、フォームのバリデーションを行い、それに応じて処理します。

put(*args, **kwargs)

PUT アクションも処理され、すべてのパラメータを post() に渡します。

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 を返します。

Back to Top