2012-08-04 56 views
2

可能重複:
Django: How to access URL regex parameters inside a middleware class?Django的:避免將通用網址參數去每個視圖

我在谷歌的AppEngine使用Django。在我的應用程序的每個網址都以格式公司代碼:

http://localhost:8080/[company]/blah/blah

我想要做的是預處理中的URL並獲取[公司]中設置的AppEngine數據存儲命名空間的公司代碼。這可以通過使用命名的url模式完成,它將公司代碼作爲kwargs參數傳遞給每個視圖函數。這似乎太多了,只是在開始時設置一個名稱空間。而且我的任何觀點都不需要這個公司參數。

是否可以從url參數設置命名空間,但是避免將公司參數傳遞給我的項目的每個視圖?

回答

0

你不需要在視圖函數定義中實際包含kwarg,所以你可以忽略它。

url(r'^(?P<company>[-\w]+)/$','app.views.foo_view', name="foo_view"), 

def foo_view(request): 
    pass 

或者使用process_request中間件和pop企業走出kwargs的,這樣它不會被傳遞給任何的意見。

+0

您的建議讓我接觸到解決方案。謝謝。我們需要像'def foo_view(request,* args,** kwargs):'一樣定義視圖方法,以避免將url參數作爲視圖函數參數傳遞。 – 2012-08-05 04:03:49