Простые миксины¶
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
(если он указан).
-