シンプルなミックスイン—Djangoのドキュメント

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

シンプルなミックスイン

ContextMixin

class django.views.generic.base.ContextMixin

属性

extra_context

コンテキストに含める辞書。 これは、 as_view()でコンテキストを指定する便利な方法です。 使用例:

from django.views.generic import TemplateView
TemplateView.as_view(extra_context={'title': 'Custom Title'})

メソッド

get_context_data(**kwargs)

テンプレートコンテキストを表す辞書を返します。 提供されたキーワード引数は、返されるコンテキストを構成します。 使用例:

def get_context_data(self, **kwargs):
    context = super().get_context_data(**kwargs)
    context['number'] = random.randrange(1, 100)
    return context

すべてのクラスベースの汎用ビューのテンプレートコンテキストには、Viewインスタンスを指すview変数が含まれています。

必要に応じてalters_dataを使用してください

テンプレートコンテキストにビューインスタンスがあると、潜在的に危険なメソッドがテンプレート作成者に公開される可能性があることに注意してください。 このようなメソッドがテンプレートで呼び出されないようにするには、これらのメソッドにalters_data=Trueを設定します。 詳細については、テンプレートコンテキストのレンダリングに関するドキュメントを参照してください。


TemplateResponseMixin

class django.views.generic.base.TemplateResponseMixin

適切なコンテキストを指定して、 TemplateResponse を構築するメカニズムを提供します。 使用するテンプレートは構成可能であり、サブクラスによってさらにカスタマイズできます。

属性

template_name

文字列で定義された、使用するテンプレートのフルネーム。 template_nameを定義しないと、 django.core.exceptions.ImproperlyConfigured 例外が発生します。

template_engine

NS :setting: `NAME ` テンプレートのロードに使用するテンプレートエンジンの例。 template_engineは、usingキーワード引数としてresponse_classに渡されます。 デフォルトはNoneで、設定されているすべてのエンジンでテンプレートを検索するようにDjangoに指示します。

response_class

render_to_responseメソッドによって返される応答クラス。 デフォルトは TemplateResponse です。 TemplateResponseインスタンスのテンプレートとコンテキストは、後で変更できます(例: テンプレート応答ミドルウェア)。

カスタムテンプレートの読み込みまたはカスタムコンテキストオブジェクトのインスタンス化が必要な場合は、TemplateResponseサブクラスを作成し、それをresponse_classに割り当てます。

content_type

応答に使用するコンテンツタイプ。 content_typeはキーワード引数としてresponse_classに渡されます。 デフォルトはNoneです。これは、Djangoが'text/html'を使用することを意味します。

メソッド

render_to_response(context, **response_kwargs)

self.response_classインスタンスを返します。

キーワード引数が指定されている場合、それらは応答クラスのコンストラクターに渡されます。

get_template_names()を呼び出して、既存のテンプレートを探して検索されるテンプレート名のリストを取得します。

get_template_names()

テンプレートをレンダリングするときに検索するテンプレート名のリストを返します。 見つかった最初のテンプレートが使用されます。

デフォルトの実装では、 template_name を含むリストが返されます(指定されている場合)。