简单的 mixins — Django 文档
简单混入
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
方法返回的响应类。 默认值为 TemplateResponse。TemplateResponse
实例的模板和上下文可以稍后更改(例如 在 模板响应中间件 中)。如果您需要自定义模板加载或自定义上下文对象实例化,请创建一个
TemplateResponse
子类并将其分配给response_class
。
- content_type
用于响应的内容类型。
content_type
作为关键字参数传递给response_class
。 默认为None
– 表示 Django 使用 :setting:`DEFAULT_CONTENT_TYPE`。
方法
- render_to_response(context, **response_kwargs)
返回一个
self.response_class
实例。如果提供任何关键字参数,它们将被传递给响应类的构造函数。
调用 get_template_names() 以获取模板名称列表,这些模板名称将被搜索以查找现有模板。
- get_template_names()
返回要在呈现模板时搜索的模板名称列表。 将使用找到的第一个模板。
如果指定了 template_name,默认实现将返回一个包含 template_name(如果指定)的列表。