super()在 Django 模板视图中使用
Django 模板视图用于呈现 HTML 模板并将数据传递给它们以供显示。super()
您可以在 Django 模板视图中使用,轻松地从父模板视图继承属性和方法,并根据需要自定义或扩展它们。
Django 模板视图的一种常见用法super()
是在get_context_data
方法中,该方法用于将数据传递给模板以进行渲染。例如,考虑一个ProductView
使用子类调用的 Django 模板视图BookView
。他们ProductView
可能有一个title
变量,而他们BookView
可能想添加一个额外的author
变量。在 中BookView
,我们可以使用super()
调用get_context_data
的方法ProductView
并传入title
变量,同时也可以添加author
特定于 的变量BookView
:
class ProductView(TemplateView):
template_name = 'product.html'
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['title'] = 'Product'
return context
class BookView(ProductView):
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['author'] = 'John Doe'
return context
以这种方式使用super().get_context_data(**kwargs)
允许从BookView
继承title
变量ProductView.