簡體   English   中英

如何從兩個視圖Django傳遞相同的上下文?

[英]How can I pass the same context from two views, Django?

我有三個模板:

  1. Base_template
  2. first_template
  3. second_template

first_template和second_template擴展了base_template。 因此,它們具有相同的旁白條。 我需要將相同的上下文傳遞給這些模板。 當然,我可以在第一個視圖中創建一次,然后在第二個視圖中創建。 但是,在我看來,這不是一個好習慣。 或者,我可以在utils.py中創建一個函數並將其添加到context_processors中,但是隨后它將被傳遞到所有網站。

我該怎么辦? 請給我一個建議。

謝謝。

您有幾種選擇:

  1. 您可以使用會話-將上下文添加到會話中,然后直接從模板中的會話中呈現它。

  2. 創建一個自定義上下文處理器; 並只需忽略其他模板中的變量即可。

  3. 創建一個基視圖類,然后在其他視圖中從基類繼承。 這樣,您的上下文僅定義一次。

  4. 創建一個自定義裝飾器,將上下文注入響應中,然后在需要的地方裝飾方法(或類)。

在這四個中,較好的是2和3。 4也會起作用,但要求您了解裝飾器的工作方式 我只是在其中添加了一些會話,以防萬一這是一個臨時需求-否則,您應該真正忽略會話並查看其他會話。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM