[英]Django overriding get_context_data() not rendering in template
[英]Using Django CBV's without overriding get_context_data
無論如何,我可以利用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
標題稱為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
?
我看不出有任何理由僅為了獲得標題就定義此方法。 DetailView的全部要點是您可以通過{{ object }}
訪問模板中的{{ object }}
。 那么為什么不只{{ object.title }}
呢?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.