方法
返回用来表示模板的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 变量指向视图实例。
在适当的位置使用alters_data
注意,将视图实例包含在模板Context 中可能将有潜在危险的方法暴露给模板作者。为了避免在模板中被调用类似这样的方法,可以在这些方法上设置alters_data=True。更多信息,参见渲染模板Context 的文档。
根据合适的Context,提供一种构造TemplateResponse 的机制。使用的模板可以配置,而且在子类中可以进一步自定义。
属性
字符串形式的模板名称。如果没有定义template_name 将引发一个django.core.exceptions.ImproperlyConfigured 异常。
用于加载模板的模板引擎的名称。template_engine 将作为using 关键字参数传递给response_class。默认值为None,它告诉Django在所有配置的引擎中搜索模板。
render_to_response 方法返回的响应类。默认为TemplateResponse。TemplateResponse 实例的模板和Context 可以在后面改动(例如,在模板响应中间件中)。
在旧版本的Django 中,TemplateResponse 使用 RequestContext,模板处理器中的值将覆盖视图中定义的模板变量。例如,如果你子类化DetailView 并设置 context_object_name 为user, django.contrib.auth.context_processors.auth Context 处理器将使用当前的user 覆盖你这个变量。现在,为了与render() 快捷函数保持一致性,类中提供的Context 将覆盖Context 处理器中的值。
如果你需要自定义模板的加载或者自定义Context 对象的实例化,你可以创建一个TemplateResponse 的子类并将它赋值给 response_class。
响应使用的Content-Type。content_type 将作为关键字参数传递给response_class。默认为None —— 表示Django 将使用DEFAULT_CONTENT_TYPE。
方法
返回一个self.response_class 实例。
提供的任何参数都将传递给response_class。
调用get_template_names() 可以获得模板名称的列表,在查找存在的模板时会搜索这个列表。
返回模板名称的一个列表,在查找存在的模板时会搜索这个列表。
如果指定template_name,默认的实现将返回包含 template_name 的一个列表。
2015年5月13日