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.

posted @ 2023-05-29 14:22  Oops!#  阅读(99)  评论(0编辑  收藏  举报