简单的Mixin

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

要用于加载模板的模板引擎的NAMEtemplate_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(如果已指定)的列表。

返回顶部