2014-11-01 4 views
0

추가 정보를 보내려면 get_context_data에서 수퍼 호출을하지 않고 장고의 기본 CBV를 활용할 수 있습니까?get_context_data를 덮어 쓰지 않고 Django CBV를 사용하십시오.

예를 들어, 나는 CBV가 독자적으로 작업의 99 %를 처리하지만 사이트 제목과 같은 정적 정보의 작은 비트를 보내고 싶습니다. 단지 달성하기 위해 get_context_data를 사용하지 않아도됩니다. 이.

나는 다음 작업을 수행 할 수 있다는 것을 알고 있어요 : view.title로 내 템플릿에

class Page(DetailView): 
    model: MyModel 
    template_name: 'something.html' 
    title: 'Some Page Title' 

및 참조 제목입니다. 그러나 페이지 제목이 내 모델의 속성이되고 싶습니다. 나는 다음을 수행 할 수있어 어느 : 나 쿼리를 실행 중이거나 그래서 모델의 title 속성을 얻을 수 있습니다 get_context_data 사용하지 않고 각각의 모델은 상세보기에서 호출되는 참조하는 것이 가능

get_context_data(self, **kwargs): 
    context = super(Page, self).get_context_data(**kwargs) 
    context['title'] = 'Page Title | %s' % (self.get_object().title) 

    return context 

및 내 서식 파일에 view.title으로 액세스 하시겠습니까?

+0

나는 당신이 무엇을 원하는지는 모르지만 아마도이 페이지 제목 | {{object.title}}' – madzohan

답변

0

제목을 얻기 위해이 방법을 정의 할 이유가 없습니다. DetailView의 요점은 {{ object }}을 통해 템플릿의 객체에 액세스 할 수 있다는 것입니다. 그렇다면 {{ object.title }}을 사용하면 안됩니까?

+0

같은 레이아웃 템플릿을 공유하고'{{object.title}} '과 다른 것을 가질 수있는 다른보기가 있기 때문에 모든 제목을'보기에 저장할 수 있기를 바랍니다 .title '그래서 나는 하나의 if 문을 써서 처리 할 수 ​​있습니다 :'{% if view.title %}'... – user2989731

+0

음, 네가 묻고있는 것을 정말로 이해하지 못한다. 일반 뷰가 이미 제공 한 데이터를 사용하거나 자신의 데이터를 제공하기 위해'get_context_data'를 정의하십시오. –

+0

그리고 모델의 속성에 액세스하는 방법을 구체적으로 묻기 때문에 더욱 혼란 스럽습니다. –

관련 문제