我想將數據傳遞給佈局'base.html'。我目前通過將數據存儲在request.session中並通過請求對象在'base.html'中訪問它來完成它。有沒有辦法將數據傳遞給'base.html',而不必傳遞每個視圖的數據。如何將數據傳遞給django佈局(如'base.html')而無需通過每個視圖提供它?
4
A
回答
8
使用一個上下文處理器,它被精確地製成用於這一目的。在您的應用程序目錄中創建一個文件context_processors.py
,然後在文件中定義返回變量的字典中每個模板的上下文插入函數,是這樣的:
def add_variable_to_context(request):
return {
'testme': 'Hello world!'
}
啓用在設置你的背景處理器( Django的> = 1.8):
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [root('templates'),],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
'yourapp.context_processors.add_variable_to_context',
],
},
},
]
然後在每一個模板,你可以寫
{{ testme }}
它將呈現在Django documentation
-1
from django.shortcuts import render_to_response
env = {'name': 'Your Name'}
return render_to_response('base.html', env)
這將只發送給命名爲base.html文件
+0
不是我的downvote,但OP的問題的最後9個字 - 「而不必傳遞每個視圖的數據。」 – Sayse
+0
是的你是對的,我讀錯了。您的評論然後是我認爲最合適的方式 –
1
如果您需要在(幾乎)每個模板這個數據,那麼它是有道理的使用背景處理器的頁面。從Django文檔:
的context_processors選項是可調用的列表 - 稱爲上下文處理器 - 它們採取的請求對象作爲參數,返回項目的字典合併到上下文。
相關問題
- 1. 如何通過django中間件將值傳遞給每個視圖
- 2. Rails視圖:如何將變量傳遞給局部佈局?
- 3. Laravel - 如何將變量傳遞給佈局局部視圖
- 4. 如何將佈局參數傳遞給部分視圖?
- 5. 如何將多個視圖,而無需使用嵌套佈局
- 6. 通過Ajax將數據傳遞給PHP而無需使用提交按鈕
- 7. 如何將TouchUpInside事件傳遞給UIButton,而不將它傳遞給父視圖?
- 8. 如何將參數傳遞給Django的通用視圖
- 9. django和ExtJS如何通過JSON將數據傳遞給對方?
- 10. 如何將大數據傳遞給jsp而無需提交到服務器
- 11. 如何將object_id傳遞給Django中的通用視圖object_detail
- 12. 如何發佈通過多個局部視圖數據在MVC3
- 13. 如何將數據從Phonegap視圖傳遞給構架視圖
- 14. 如何在我的佈局中將數據傳遞給PartialView?
- 15. 如何將數據傳遞給Zend 2中的佈局?
- 16. django將常用詞典傳遞給模板,而不必在每個視圖中明確傳遞它們?
- 17. 如何通過參數傳遞視圖?
- 18. 如何將數據傳遞到Express 3中的每個視圖?
- 19. 如何將數據傳遞給Laravel中的佈局而不管控制器?
- 20. Laravel刀片 - 將數據傳遞給每個公共函數中的佈局而不使用它
- 21. 如何將多個'數據'傳遞給視圖?
- 22. 如何將數據傳遞給另一個視圖控制器?
- 23. 如何將通過AJAX收到的數據傳遞給ASP MVC部分視圖?
- 24. 如何通過CodeIgniter使用Ajax代碼將視圖數據傳遞給Controller?
- 25. 將數據傳遞給控制器通過Ajax從視圖
- 26. 將數據傳遞給視圖。始終通過viewData?
- 27. 如何將值從javascript函數傳遞給Django視圖
- 28. 如何將參數傳遞給django中基於類的視圖?
- 29. 如何將'next'參數傳遞給Django Auth logout_then_login視圖?
- 30. 如何將大量參數傳遞給Django中的視圖?
是的,上下文處理器或中間件
Hello world!
更多信息,兩者都大量記載 – Sayse