シンプルなミックスイン—Djangoのドキュメント
シンプルなミックスイン
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 を含むリストが返されます(指定されている場合)。