簡體   English   中英

在不覆蓋get_context_data的情況下使用Django CBV

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM