例如用Django搭網站,大部分的頁面都會含有user的訊息,像是使用者名,頭像等等。
但是我不可能每個view都傳一個user變數進context吧?
我這種需求一般如何實現呢?
你多慮了,不用你手動一個個寫的,預設已經有了,直接用就行,例如:{{user.username}}不過沒有頭像等自訂的欄位資訊。 或 你自訂一個context_processors.py,用於返回你想要的信息,然後在settings.py裡導入。 就不需要在每個函數都回傳了
雷雷
應該是{{request.user.username}}.而且django支援設定全域變數
使用者登入後,使用者資訊一般都會存在request.user裡,不需要傳user變數進context, 前提是在settings裡引用了 django.template.context_processors.request
補充一點:如果很多頁面都會出現固定的一部分內容,可以採取模板繼承的方法,將相同的部分提取出來,透過extends和include對模板的內容進行修改。
你多慮了,不用你手動一個個寫的,預設已經有了,直接用就行,例如:{{user.username}}
不過沒有頭像等自訂的欄位資訊。
或 你自訂一個context_processors.py,用於返回你想要的信息,然後在settings.py裡導入。 就不需要在每個函數都回傳了
雷雷
應該是{{request.user.username}}.
而且django支援設定全域變數
使用者登入後,使用者資訊一般都會存在request.user裡,不需要傳user變數進context, 前提是在settings裡引用了 django.template.context_processors.request
補充一點:如果很多頁面都會出現固定的一部分內容,可以採取模板繼承的方法,將相同的部分提取出來,透過extends和include對模板的內容進行修改。