2012-03-21 49 views
3

我試圖從上下文處理器中獲取當前應用程序名稱(包含當前視圖的應用程序),因爲我的所有應用程序都有自己的Webdoor模型,但它們都具有相同的屬性(有些值不同)。來自Webdoor的值在每個頁面上都使用,所以我想在自定義上下文處理器中使用它,以便比在每個視圖上調用它更容易。 不僅它,而且我可以將它用於其他類似的任務。 一旦我已經知道模型名稱,我只需要應用程序使用get_model方法調用它。如何從上下文處理器獲取當前應用程序名稱?

任何人有任何想法如何做到這一點?

謝謝!

+0

你是什麼意思「當前應用程序名稱」?你想要做什麼的應用程序的名稱?或者目前有什麼作用? – jpic 2012-03-21 14:55:54

+0

這是包含當前視圖的應用程序。 – 2012-03-21 14:57:45

回答

4

確定當前視圖的好地方是process_view() middleware method,這也恰好是添加請求變量的好地方。例如: - 如果view_func是testapp.views.some_view

class CurrentViewApplicationName(object): 
    def process_view(self, request, view_func, view_args, view_kwargs): 
     request.current_app = view_func.__module__.split('.')[0] 

將設置request.current_app到testapp。這可能不是防彈的,一些應用程序可以在子模塊等中看到視圖......但是這應該是一個很好的開端,可以根據您的項目特定需求進行調整。

+0

你的回答比我想要的要好。向我介紹工具我不知道他們是如此簡單的創建! ; d – 2012-03-21 16:41:26

相關問題