Простые миксины

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 для этих методов. Для получения дополнительной информации ознакомьтесь с документацией по rendering a template context.

TemplateResponseMixin

class django.views.generic.base.TemplateResponseMixin

Предоставляет механизм для построения TemplateResponse, учитывая подходящий контекст. Используемый шаблон является настраиваемым и может быть дополнительно настроен подклассами.

Атрибуты

template_name

Полное имя шаблона для использования, заданное строкой. Если не определить template_name, то возникнет исключение django.core.exceptions.ImproperlyConfigured.

template_engine

NAME движок шаблона, который будет использоваться для загрузки шаблона. template_engine передается как аргумент ключевого слова using в response_class. По умолчанию None, что говорит Django искать шаблон во всех настроенных движках.

response_class

Класс ответа, который будет возвращен методом render_to_response. По умолчанию это TemplateResponse. Шаблон и контекст экземпляров TemplateResponse могут быть изменены позже (например, в 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.

Если указаны какие-либо ключевые аргументы, они будут переданы в конструктор класса ответа.

Вызывает get_template_names() для получения списка имен шаблонов, которые будут перебираться в поисках существующего шаблона.

get_template_names()

Возвращает список имен шаблонов для поиска при рендеринге шаблона. Будет использован первый найденный шаблон.

Реализация по умолчанию возвращает список, содержащий template_name (если он указан).

Вернуться на верх