Простые миксины¶
КонтекстМиксин¶
- 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¶
NAMEмеханизма шаблонов, который будет использоваться для загрузки шаблона.template_engineпередается как аргумент ключевого словаusingвresponse_class. По умолчанию установлено значение «Нет», что указывает 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(если оно указано).