无论如何,我可以利用Django的默认CBV而不会导致对get_context_data的超级调用发送额外的信息。
例如,我有一个网站,其中CBV自己处理99%的工作,但我想发送一些静态信息,如页面标题,似乎没有必要使用get_context_data来完成这个
我知道我可以做到以下几点:
class Page(DetailView):
model: MyModel
template_name: 'something.html'
title: 'Some Page Title'
我的模板中的引用标题为view.title
。但是我希望页面标题是我模型的属性。我可以通过以下方式做到这一点:
get_context_data(self, **kwargs):
context = super(Page, self).get_context_data(**kwargs)
context['title'] = 'Page Title | %s' % (self.get_object().title)
return context
我是否可以在不运行查询或使用get_context_data的情况下引用详细视图中调用的单个模型,以便我可以获取模型的title属性并在模板中使用view.title
访问它?
答案 0 :(得分:0)
我无法找到任何理由来定义此方法以获得标题。 DetailView的重点在于您可以通过{{ object }}
访问模板中的对象。那么为什么不做{{ object.title }}
?