---
title: "シンプルなミックスイン (mixin)"
version: 5.0
locale: ja
source: https://docs.djangoproject.com/ja/5.0/ref/class-based-views/mixins-simple/
canonical: https://djangodocs.dev/ja/5.0/ref/class-based-views/mixins-simple/
---
# シンプルなミックスイン (mixin)

## `ContextMixin`

#### `class django.views.generic.base.ContextMixin`

**属性**

#### `extra_context`

コンテキストに含める辞書。これは、[`as_view()`](/ja/5.0/ref/class-based-views/base/#django.views.generic.base.View.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` を設定してください。より詳しい情報については、[テンプレートコンテキストのレンダリング](/ja/5.0/ref/templates/api/#alters-data-description) に関するドキュメントを読んでください。

## `TemplateResponseMixin`

#### `class django.views.generic.base.TemplateResponseMixin`

適切なコンテキストを指定して [`TemplateResponse`](/ja/5.0/ref/template-response/#django.template.response.TemplateResponse) を構築するメカニズムを提供します。使用するテンプレートは設定可能で、サブクラス化によりさらにカスタマイズできます。

**属性**

#### `template_name`

文字列で指定された使用するテンプレートの完全な名前。`template_name` を定義しないと、[`django.core.exceptions.ImproperlyConfigured`](/ja/5.0/ref/exceptions/#django.core.exceptions.ImproperlyConfigured) 例外が発生します。

#### `template_engine`

テンプレートを読み込む際に使用するテンプレートエンジンの [`NAME`](/ja/5.0/ref/settings/#std-setting-TEMPLATES-NAME) です。 `template_engine` は `response_class` の `using` キーワード引数として渡されます。デフォルトは `None` で、 Django は設定された全てのエンジンでテンプレートを検索します。

#### `response_class`

`render_to_response` メソッドが返す response クラス。 デフォルトは [`TemplateResponse`](/ja/5.0/ref/template-response/#django.template.response.TemplateResponse) です。 `TemplateResponse` インスタンスのテンプレートとコンテキストは後で変更できます (たとえば [template response ミドルウェア](/ja/5.0/topics/http/middleware/#template-response-middleware) で変更できます)。

カスタムテンプレートの読み込みやカスタムコンテキストオブジェクトのインスタンス化が必要な場合は、 `TemplateResponse` サブクラスを作成して `response_class` に代入してください。

#### `content_type`

レスポンスに使用するコンテンツタイプ。 `content_type` は `response_class` のキーワード引数として渡されます。デフォルトは `None` で、その場合 Django は `'text/html'` を使用します。

**メソッド**

#### `render_to_response(context, **response_kwargs)`

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

キーワード引数を指定すると、response クラスのコンストラクタに渡されます。

[`get_template_names()`](#django.views.generic.base.TemplateResponseMixin.get_template_names) を呼び出すと、存在するテンプレートを探すために検索されるテンプレート名のリストを取得できます。

#### `get_template_names()`

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

デフォルトの実装では、[`template_name`](#django.views.generic.base.TemplateResponseMixin.template_name) を含むリストを返します（指定された場合）。
