搜尋

首頁  >  問答  >  主體

python - [Django]如何讓每一個template都可以取得user信息

例如用Django搭網站,大部分的頁面都會含有user的訊息,像是使用者名,頭像等等。

但是我不可能每個view都傳一個user變數進context吧?

我這種需求一般如何實現呢?

漂亮男人漂亮男人2736 天前1040

全部回覆(5)我來回復

  • typecho

    typecho2017-07-05 10:36:29

    你多慮了,不用你手動一個個寫的,預設已經有了,直接用就行,例如:{{user.username}}
    不過沒有頭像等自訂的欄位資訊。
    或 你自訂一個context_processors.py,用於返回你想要的信息,然後在settings.py裡導入。 就不需要在每個函數都回傳了

    回覆
    0
  • PHP中文网

    PHP中文网2017-07-05 10:36:29

    雷雷

    回覆
    0
  • PHP中文网

    PHP中文网2017-07-05 10:36:29

    應該是{{request.user.username}}.
    而且django支援設定全域變數

    回覆
    0
  • 習慣沉默

    習慣沉默2017-07-05 10:36:29

    使用者登入後,使用者資訊一般都會存在request.user裡,不需要傳user變數進context, 前提是在settings裡引用了 django.template.context_processors.request

    回覆
    0
  • 我想大声告诉你

    我想大声告诉你2017-07-05 10:36:29

    補充一點:如果很多頁面都會出現固定的一部分內容,可以採取模板繼承的方法,將相同的部分提取出來,透過extends和include對模板的內容進行修改。

    回覆
    0
  • 取消回覆