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對(duì)象如{{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對(duì)模板的內(nèi)容進(jìn)行修改。
相關(guān)文章:
1. java - MySQL中,使用聚合函數(shù)+for update會(huì)鎖表嗎?2. 如何分別在Windows下用Winform項(xiàng)模板+C#,在MacOSX下用Cocos Application項(xiàng)目模板+Objective-C實(shí)現(xiàn)一個(gè)制作游戲的空的黑窗口?3. javascript - 如何清除向可編輯的(contenteditable)元素里粘貼的文本的標(biāo)簽和樣式?4. java - Atom中文問題5. angular.js - 百度支持_escaped_fragment_嗎?6. 這種數(shù)據(jù)怎么合并啊?7. nginx - 關(guān)于vue項(xiàng)目部署到ngnix后出現(xiàn)的問題8. java - spring-data Jpa 不需要執(zhí)行save 語句,Set字段就可以自動(dòng)執(zhí)行保存的方法?求解9. javascript - 如何使用loadash對(duì)[object,object,object]形式的數(shù)組進(jìn)行比較10. java - C語言算法題-韓信點(diǎn)兵 求解?
