2017-02-02 36 views
0

我的問題是,有沒有辦法維護多個視圖上的上下文對象?假設你在主頁上,你點擊一個鏈接轉到應用程序的特定部分,但是你想維護上下文信息,以便在每次更改視圖時不要過度地查詢數據庫。Django 1.10 - 維護上下文對象信息

我知道mixin等,但這些似乎沒有維護信息,或者我錯了嗎?問題是,我可以訪問上下文信息並將它傳遞給下一個視圖嗎?

+0

我認爲你正在尋找[Context Processors](https://docs.djangoproject.com/en/1.10/ref/templates/api/#writing-your-own-context-processors),但我是不完全確定 – Sayse

+0

不,你不能通過它,因爲每個請求都在它自己的線程中處理。事實上,在同一時間可能存在多種背景。只要您沒有遇到任何性能問題,請不要擔心數據庫查詢。它可以處理很多。如果您在問題出現時立即出現問題,還有其他方法可以優化。而是使用網站緩存來改善加載時間。 – trixn

回答

2

爲了維護視圖間的狀態,you can use django sessions

會話框架允許您以每個站點訪問者爲基礎存儲和檢索任意數據。

您必須啓用會話中間件並添加適當的設置。一旦完成,您必須手動向每個視圖添加代碼,以檢查會話是否具有與該視圖的上下文相關的信息,並使用上下文中的數據更新會話。