ミックスイン (mixin) を編集する¶
以下のミックスイン (mixin) は、Djangoの編集ビューを構築するのに使用されます。
django.views.generic.edit.FormMixin
django.views.generic.edit.ModelFormMixin
django.views.generic.edit.ProcessFormView
django.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
を返します。
-