我是Django和Web編程的新手。已使用Google搜索,但無法找到我需要的答案。這裏的情況:Queryset在繼承的Django模板中
我有一個網站,其中用戶登錄每個頁面都有一定的導航菜單。這就是爲什麼他們擴展名爲base_logged.html的模板,這也擴展了base.html。 問題在於導航菜單部分由數據庫查詢填充。
有沒有在每個記錄視圖中填充查詢的方法? 還是有點看繼承?
對不起,我英文很差。
我是Django和Web編程的新手。已使用Google搜索,但無法找到我需要的答案。這裏的情況:Queryset在繼承的Django模板中
我有一個網站,其中用戶登錄每個頁面都有一定的導航菜單。這就是爲什麼他們擴展名爲base_logged.html的模板,這也擴展了base.html。 問題在於導航菜單部分由數據庫查詢填充。
有沒有在每個記錄視圖中填充查詢的方法? 還是有點看繼承?
對不起,我英文很差。
您可以使用context processors(Here's a good example)。這些允許您在整個站點的每個視圖中提供變量(查詢集等)。例如,使文件在您的應用程序之一:
some_app.context_processors.my_context_processor.py
from some_app.models import Bar
def my_context_processor():
return {
'foo' : Bar.objects.all(),
}
,並在您settings.py
TEMPLATE_CONTEXT_PROCESSORS = (
...
'some_app.context_processors.my_context_processor',
...
)
,你現在有權訪問所有視圖/模板:
{{ foo }}
這聽起來不錯。我會嘗試一下,然後張貼我的經驗。沒關係,不是每個網頁都會對查詢有意義嗎?因爲查詢基於用戶... – lembon 2012-03-23 00:10:24
'... def my_context_processor(request): ...' – 2013-09-30 18:02:52