2014-05-11 20 views
0

我有一個愚蠢的Django模板問題;想用最新的「新聞」創建簡單的邊欄,並將其包含在我的網站的多個頁面中。所以我做這樣的事情: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查看? 您必須在包含_right_sidebar_news.html的所有模板中都有所需的Entry對象,以便可以呈現此Entry
我會去在一個基於類的觀點:

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

感謝您的回答,但我已經找到了解決方案。正確的方法是使用自定義模板標籤。 –