简单的 mixins — Django 文档

来自菜鸟教程
Django/docs/3.1.x/ref/class-based-views/mixins-simple
跳转至:导航、​搜索

简单的混合

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

:setting:`名称 ` 用于加载模板的模板引擎。 template_engine 作为 using 关键字参数传递给 response_class。 默认为 None,它告诉 Django 在所有配置的引擎中搜索模板。

response_class

render_to_response 方法返回的响应类。 默认值为 TemplateResponseTemplateResponse 实例的模板和上下文可以稍后更改(例如 在 模板响应中间件 中)。

如果您需要自定义模板加载或自定义上下文对象实例化,请创建一个 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 的列表(如果已指定)。