2015-06-06 78 views
2

我想將對象的特定字段分配給另一個context變量。隨着基於函數的觀點,這簡直是宣告關鍵的問題:值對:Django CBV DetailView - 訪問要分配給上下文變量的對象?

context = { 
    'title': my_object.nick_name 
} 

現在,在我的模板,我可以使用變量{{ title }},它會顯示該對象的字段nick_name

如何使用基於類的視圖實現相同的功能?

例如,我有這樣的簡單的DetailView:

class MyObjDetail(DetailView): 
    model = MyObject 

    def get_context_data(self, **kwargs): 
    context = super(MyObjectDetail, self).get_context_data(**kwargs) 
    context['title'] = ????? <--- right here 
    context['cancel'] = reverse_lazy('my_objs:my_objs_list') 
    return context 

我想將變量{{ title }}分配要被顯示與此類基於視圖的對象的nick_name字段。我會怎麼做?

回答

4

DetailView中,您將可以通過self.object訪問該對象。因此,你應該做的:

context['title'] = self.object.nick_name 

然而,你可能會發現它更容易通過簡單對象訪問暱稱模板:

{{ object.nickname }} 
+0

可愛!第一種方法奏效(認爲它很簡單)。第二種方法由於我的模板的結構是不可行的。我需要所有視圖來傳遞標題變量,所以我不能這樣做{{object.nick_name}} – Garfonzo