2014-05-11 3 views
0

바보 장고 템플릿 질문이 하나 있습니다. 마지막 "뉴스"가있는 간단한 사이드 바를 만들고 내 웹 사이트의 여러 페이지에 포함시키고 싶습니다. 그래서 나는 같은 것을 할 :Django : 포함 된 템플릿에서 데이터 얻기

# views.py 
def right_sidebar_news(request): 
    e = Entry.objects.last() 
    return render(request, "_right_sidebar_news.html", {"entry": e}) 

내가 _right_sidebar_news.html 포함 내 템플릿에서 다음과 같이 :

# some_theme.html 
<!-- RIGHT COLUMN --> 
{% include "_right_sidebar_news.html" %} 
<!-- END RIGHT COLUMN --> 

그러나 변수 (물론 항목의 세부 사항을 제외하고) 거의 모든 페이지에서

은 "항목은"비어 . 나는 대략 with 계산서를 알고있다 그러나이 경우에는 나는 모든 나의 전망에서 마지막 "입장"를 선적해야한다.

어떻게하면이 간단한 사이드 바를 만들고 데이터로 느낄 수 있을까요? 감사.

+0

템플릿에서 right_sidebar_news.html이 렌더링됩니까 ??? – ruddra

답변

0

데이터가 right_sidebar_news 인 것으로 알고 있습니다. Entry을 렌더링 할 수 있도록 개체를 _right_sidebar_news.html이 포함 된 모든 템플릿에 포함시켜야합니다.
나는 클래스 기반 뷰에 갈 것 :

class EntriesViewMixin(object): 
    def get_context_data(self, **kwargs): 
     context = super(EntriesViewMixin, self).get_context_data(**kwargs) 
     context.update({'last_entry': Entry.objects.last()}) 
     return context 

class SomeView(EntriesViewMixin, TemplateView): 
    template_view = 'some_theme.html' 

하지만 내가 제대로 질문을 이해 있는지 확실하지 않습니다.
도움이 되었습니까?

+0

답변 주셔서 감사합니다.하지만 이미 해결책을 찾았습니다. 올바른 방법은 사용자 정의 templatetag를 사용하는 것입니다. –

관련 문제