python - [Django]如何讓每一個template都可以獲取user信息
問題描述
比如用Django搭一個網(wǎng)站,大部分的頁面都會含有user的信息,比如用戶名,頭像等等。
但是我不可能每個view都傳一個user變量進context吧?
我這種需求一般如何實現(xiàn)呢?
問題解答
回答1:你多慮了,不用你手動一個個寫的,默認(rèn)已經(jīng)有了,直接用就行,比如:{{user.username}}不過沒有頭像等自定義的字段信息。 或者 你自定義一個context_processors.py,用于返回你想要的信息,然后在settings.py里導(dǎo)入。 就不需要在每個函數(shù)都返回了
回答2:如果你是使用的auth.login()登錄的話,你可以在任何一個模板里直接使用user對象如{{user.username}}回答3:
應(yīng)該是{{request.user.username}}.而且django支持設(shè)置全局變量
回答4:用戶登錄后,用戶信息一般都會存在request.user里,不需要傳user變量進context, 前提是在settings里引用了 django.template.context_processors.request
回答5:補充一點:如果很多頁面都會出現(xiàn)固定的一部分內(nèi)容,可以采取模板繼承的方法,將相同的部分提取出來,通過extends和include對模板的內(nèi)容進行修改。
相關(guān)文章:
1. javascript - 微信jssdk 注入配置 提示 config:invalid signature2. android - 目前有哪些用Vue.js開發(fā)移動App的方案?3. gosts內(nèi)容是空的4. javascript - 微信 H5 授權(quán) 返回鍵5. javascript - 小白求解,請問這個dom對象的為什么能用jquery方法?6. android - 在微信瀏覽器中可以在線預(yù)覽pdf嗎?7. python - 爬取微信公眾號文章需要輸入驗證碼問題8. javascript - vue組件中使用百度分享初次加載失敗?9. android - 怎樣才能在連接本地WIFI是通過 3G/4G 實現(xiàn)微信分享?10. 關(guān)于Apache無法啟動的程序的方式是怎么解決的
