python - [Django]如何讓每一個(gè)template都可以獲取user信息
問題描述
比如用Django搭一個(gè)網(wǎng)站,大部分的頁面都會(huì)含有user的信息,比如用戶名,頭像等等。
但是我不可能每個(gè)view都傳一個(gè)user變量進(jìn)context吧?
我這種需求一般如何實(shí)現(xiàn)呢?
問題解答
回答1:你多慮了,不用你手動(dòng)一個(gè)個(gè)寫的,默認(rèn)已經(jīng)有了,直接用就行,比如:{{user.username}}不過沒有頭像等自定義的字段信息。 或者 你自定義一個(gè)context_processors.py,用于返回你想要的信息,然后在settings.py里導(dǎo)入。 就不需要在每個(gè)函數(shù)都返回了
回答2:如果你是使用的auth.login()登錄的話,你可以在任何一個(gè)模板里直接使用user對象如{{user.username}}回答3:
應(yīng)該是{{request.user.username}}.而且django支持設(shè)置全局變量
回答4:用戶登錄后,用戶信息一般都會(huì)存在request.user里,不需要傳user變量進(jìn)context, 前提是在settings里引用了 django.template.context_processors.request
回答5:補(bǔ)充一點(diǎn):如果很多頁面都會(huì)出現(xiàn)固定的一部分內(nèi)容,可以采取模板繼承的方法,將相同的部分提取出來,通過extends和include對模板的內(nèi)容進(jìn)行修改。
相關(guān)文章:
1. 運(yùn)行python程序時(shí)出現(xiàn)“應(yīng)用程序發(fā)生異常”的內(nèi)存錯(cuò)誤?2. spring-mvc - spring-session-redis HttpSessionListener失效3. 在mac下出現(xiàn)了兩個(gè)docker環(huán)境4. 利用IPMI遠(yuǎn)程安裝centos報(bào)錯(cuò)!5. 測試自動(dòng)化html元素選擇器元素ID或DataAttribute [關(guān)閉]6. javascript - 在 model里定義的 引用表模型時(shí),model為undefined。7. javascript - node得到req不能得到boolean8. python 正則表達(dá)式提取9. java - Spring boot 讀取 放在 jar 包外的,log4j 配置文件,系統(tǒng)有創(chuàng)建日志文件,不寫入日志信息。10. javascript - 最近用echarts做統(tǒng)計(jì)圖時(shí)遇到兩個(gè)問題!!

網(wǎng)公網(wǎng)安備