我打算創建一個帶變化元素的邊欄(取決於當前的URL和身份驗證狀態)。如何用Django實現動態邊欄?
例如:默認側邊欄顯示登錄和標籤雲。
- 如果用戶已經登錄,我想顯示一個用戶菜單。
- 如果當前網址是
/tagcloud
,我想將其隱藏在邊欄中。
其實,我需要一種方法使我做在一個視圖中是這樣的:
def some_view(request):
if request.user.is_authenticated():
sidebar.remove('login')
sidebar.add('user_menu')
def tag_cloud(request):
sidebar.remove('tag_cloud')
之後,我想通過sidebar
(含蓄,沒有把它傳遞給render_to_response
)到模板,我想要做這樣的事情:
<div id="sidebar">
{{ sidebar }}
</div>
這可能嗎?
非常感謝!這是我一直在尋找的解決方案。根據文檔(http://docs.djangoproject.com/en/dev/ref/templates/api/#writing-your-own-context-processors),上下文處理器必須返回一個字典 - 並且它工作正常。謝謝。 – Nedec 2011-01-14 17:07:20
您也可以將側邊欄粘貼在單獨的模板中,並將其包含在內。使其易於重複使用。 – 2011-01-15 08:15:35