如何使用上下文变量在django views.py文件中指定页面标题?

时间:2016-07-22 18:18:06

标签: python django django-views

我正在尝试指定一个页面标题,该页面标题显示在views.py文件中的浏览器选项卡中,用于基于类的视图。我正在使用一个文件,该文件使用基本模板html页面用于许多不同的页面,我尝试使用以下内容指定标题:

{% block title %}{{ view.build_page_title }}{% endblock %}
在views.py文件中的

我正在尝试这样的事情:

class ExampleReportView(BaseReportView):

    def build_page_title(self):
        return 'Example Page Title'

这似乎不起作用。我是Django Python的绝对初学者。谢谢你的帮助!

1 个答案:

答案 0 :(得分:2)

您不能通过在视图类上定义任意方法来将值传递给模板;模板根本无法访问视图。

相反,视图类将调用自己的get_context_data来确定要传递给模板的值;你可以覆盖它并添加你自己的值。

class ExampleReportView(BaseReportView):

    def get_context_data(self, *args, **kwargs):
        data = super(ExampleReportView, self).get_context_data(*args, **kwargs)
        data['build_page_title'] = 'Example Page Title'
        return data

当然,您可以在该方法中添加任意数量的值。