简单的mixins

ContextMixin

django.views.generic.base。 ContextMixin T0> ¶ T1>

方法

get_context_data T0>( ** kwargs T1>)¶ T2>

返回用来表示模板的Context 的字典。 传递的关键字参数将组成返回的Context。 示例用法:

def get_context_data(self, **kwargs):
    context = super(RandomNumberView, self).get_context_data(**kwargs)
    context['number'] = random.randrange(1, 100)
    return context

所有基于类的通用视图的这个模板Context 都包含一个View 变量指向view实例。

在适当的位置使用alters_data

注意,将视图实例包含在模板Context 中可能将有潜在危险的方法暴露给模板作者。 为了避免在模板中被调用类似这样的方法,可以在这些方法上设置alters_data=True 更多信息,参见rendering a template context 的文档。

TemplateResponseMixin

class django.views.generic.base.TemplateResponseMixin

根据合适的Context,提供一种构造TemplateResponse 的机制。 使用的模板可以配置,而且在子类中可以进一步自定义。

属性

template_name

字符串形式的模板名称。 如果没有定义template_name 将引发一个django.core.exceptions.ImproperlyConfigured 异常。

template_engine

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

response_class

render_to_response 方法返回的响应类。 默认为TemplateResponse TemplateResponse 实例的模板和Context 可以在后面改动(例如,在template response middleware中)。

如果你需要自定义模板的加载或者自定义Context 对象的实例化,你可以创建一个response_class 的子类并将它赋值给 TemplateResponse

content_type

响应使用的Content-Type。 content_type 将作为关键字参数传递给response_class 默认为None —— 表示Django 将使用DEFAULT_CONTENT_TYPE

方法

render_to_response(context, **response_kwargs)

返回一个self.response_class 实例。

提供的任何参数都将传递给response_class。

调用get_template_names() 可以获得模板名称的列表,在查找存在的模板时会搜索这个列表。

get_template_names()

返回模板名称的一个列表,在查找存在的模板时会搜索这个列表。 将使用找到的第一个模板。

如果指定template_name,默认的实现将返回包含 template_name 的一个列表。