ミックスインの編集
次のミックスインは、Djangoの編集ビューを構築するために使用されます。
django.views.generic.edit.FormMixin
django.views.generic.edit.ModelFormMixin
django.views.generic.edit.ProcessFormView
django.views.generic.edit.DeletionMixin
FormMixin
- class django.views.generic.edit.FormMixin
フォームを作成および表示するための機能を提供するミックスインクラス。
Mixins
メソッドと属性
- initial
フォームの初期データを含む辞書。
- form_class
インスタンス化するフォームクラス。
- success_url
フォームが正常に処理されたときにリダイレクトするURL。
- 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.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 のサブクラスであるため、このミックスインのインスタンスは model および queryset 属性にアクセスでき、 [ X191X]が操作しています。
fields 属性と form_class 属性の両方を指定すると、 ImpproperlyConfigured 例外が発生します。
Mixins
メソッドと属性
- model
モデルクラス。 明示的に指定できます。それ以外の場合は、
self.object
またはクエリセットを調べることで決定されます。
- fields
フィールド名のリスト。 これは、 ModelForm の
Meta.fields
属性と同じように解釈されます。フォームクラスを自動的に生成する場合、これは必須の属性です(例:
model
を使用)。 この属性を省略すると、 ImpproperlyConfigured 例外が発生します。
- success_url
フォームが正常に処理されたときにリダイレクトするURL。
success_url
には、オブジェクトのフィールド属性に対して補間される辞書文字列フォーマットが含まれる場合があります。 たとえば、success_url="/polls/{slug}/"
を使用して、モデルのslug
フィールドで構成されるURLにリダイレクトできます。
- get_form_class()
インスタンス化するフォームクラスを取得します。 form_class が指定されている場合、そのクラスが使用されます。 それ以外の場合、
ModelForm
は、提供されている属性に応じて、 queryset または model に関連付けられたモデルを使用してインスタンス化されます。
- 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
基本的なHTTPGETおよび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
DELETE
httpアクションの処理を有効にします。メソッドと属性
- success_url
指定されたオブジェクトが正常に削除されたときにリダイレクトするURL。
success_url
には、オブジェクトのフィールド属性に対して補間される辞書文字列フォーマットが含まれる場合があります。 たとえば、success_url="/parent/{parent_id}/"
を使用して、モデルのparent_id
フィールドで構成されるURLにリダイレクトできます。
- delete(request, *args, **kwargs)
ターゲットオブジェクトを取得し、その
delete()
メソッドを呼び出してから、成功URLにリダイレクトします。
- get_success_url()
指定されたオブジェクトが正常に削除されたときにリダイレクトするURLを返します。 デフォルトで success_url を返します。