2012-02-28 71 views
0

具體我中間件有興趣在一個GET請求來區分:我可以在django中間件中獲得原始查詢字符串嗎?

  1. /管理/應用程序/模型/?
  2. /管理/應用程序/模型/

URL#1與懸空問號開始。 從我的實驗中,django的HttpRequest吞噬了它,我無法區分這兩者。有沒有辦法獲得原始的未經過濾的查詢字符串?

回答

1

?應該轉義爲%3F。那麼,可能你應該選擇另一個符號,沒有這樣的問題?

+0

此問題源自爲ModelAdmin創建的鏈接,當您聲明date_hierarchy時。它會創建一個「All Dates」鏈接來重置選擇,而django會生成一個懸而未決的問號。 – canadadry 2012-02-28 11:34:06

+0

@BonAmi'url /?'和'url /'是完全一樣的,並且將(並且應該)以相同的方式處理。 – DrTyrsa 2012-02-28 11:36:01

1

這可能是不可能的。通常,一個django應用程序從WSGI接口後面提供,到請求到達Django時,它已經被解析成PATH_INFO(在?之前)和QUERY_STRING(在?之後)。當Django運行get_full_path時,它只是將這兩個事物與一個?在中間如果需要的話。

這也是一個壞主意:HTTP並不期望URL跟蹤行爲不同,因爲這僅僅意味着一組空參數,這與缺少一個參數是一樣的。手段。除了令人困惑之外,這可能會導致互操作性問題,因爲代理或Web瀏覽器可能會丟棄結尾的'?'期望它不應該有效果。

相關問題