简单混入
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
用于加载模板的模板引擎的 NAME。
template_engine
作为using
关键字参数传递给response_class
。默认值是None
,它告诉 Django 在所有配置的引擎中搜索模板。response_class
render_to_response
方法要返回的响应类,默认为TemplateResponse
。默认为 TemplateResponse。TemplateResponse
实例的模板和上下文可以在以后进行修改(例如在 :ref:`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 的列表(如果指定了)。