2016-11-10 59 views
0

我目前使用django版本1.10的內置django-messages框架。但是,由於消息存儲在請求中,因此對於不同模塊而言不是「命名空間」,所以我擔心這可能導致潛在情況,其中由一個模塊創建的消息(例如,消息傳遞框架「你的消息已發送「)可能會流血到另一個。如何防止Django消息泄漏到其他模塊?

有沒有辦法「命名空間」這些消息,所以我們沒有這種意想不到的影響?

此外,文檔中說消息在迭代完成時會過期,這是否意味着如果我忘記迭代它們,它們有可能建立在多個請求之上?

+0

我不確定我是否理解你的命名空間問題 - 因爲所有消息都存儲在請求中,並由會話管理 - 它們位於請求命名空間中。任何操縱請求的對象(以及會話)都可以添加消息。我不知道你需要什麼樣的附加命名空間,因爲消息不是用於模塊間通信的(使用外部緩存或消息總線)。但是,您可以將自定義標籤添加到任何消息以進一步區分它們。響應處理後,消息會自動清除,因此不會累積。 –

+0

@BurhanKhalid如何防止我在'email'模塊中添加的消息無意中顯示在'account'模塊中 – AlanSTACK

回答

0

您不必遍歷消息以使其過期。 Django爲你做到這一點。

當一個request得到了message它遍歷下一個request,獲取如果模板允許它並從request數據刪除顯示。這意味着它只顯示一次並被刪除。

只有這樣,才能從你email模塊message要顯示的account模塊是增加了message已經完成(郵件發送後的動作後直接向用戶的account重定向頁面,例如)。您可以完全控制views