我正在尝试指定一个页面标题,该页面标题显示在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的绝对初学者。谢谢你的帮助!
答案 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
当然,您可以在该方法中添加任意数量的值。