ミックスインの編集—Djangoドキュメント

提供:Dev Guides
< DjangoDjango/docs/3.2.x/ref/class-based-views/mixins-editing
移動先:案内検索

ミックスインの編集

次のミックスインは、Djangoの編集ビューを構築するために使用されます。

ノート

これらを編集ビューに組み合わせる方法の例は、一般的な編集ビューのドキュメントにあります。


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_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 のサブクラスであるため、このミックスインのインスタンスは model および queryset 属性にアクセスでき、 [ X191X]が操作しています。

fields 属性と form_class 属性の両方を指定すると、 ImpproperlyConfigured 例外が発生します。

Mixins

メソッドと属性

model

モデルクラス。 明示的に指定できます。それ以外の場合は、self.objectまたはクエリセットを調べることで決定されます。

fields

フィールド名のリスト。 これは、 ModelFormMeta.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 を返します。