2012-02-28 6 views
0

は具体的に私のミドルウェアは、上のGETリクエストを区別するために興味を持っている:生のクエリー文字列をDjangoミドルウェアで取得できますか?

  1. /管理/アプリ/モデル/?
  2. /管理/アプリ/モデル/

URL#1はダングリング疑問符で開始しました。 私の実験から、djangoのHttpRequestはそれを呑み込んでしまい、私はその2つを区別できません。フィルタリングされていない生のクエリ文字列を取得する方法はありますか?

答えて

1

?は、%3Fとしてエスケープする必要があります。だから、あなたはそのような問題なしに別のシンボルを選ぶべきでしょうか?

+0

この問題は、date_hierarchyを宣言すると、ModelAdmin用に作成されたリンクに起因します。それは選択をリセットするための "All Dates"リンクを作成し、djangoは疑問符をつけます。 – canadadry

+0

@BonAmi 'url /?'と 'url /'はまったく同じであり、同じ方法で扱われます。 – DrTyrsa

1

これは不可能です。通常、djangoにリクエストが到着すると、PATH_INFO(?の前)とQUERY_STRING(?の後ろ)に解析されているため、djangoアプリケーションはWSGIインターフェイスの背後から提供されます。 djangoがget_full_pathを実行するとき、それはちょうどそれらの2つのものを連結していますか?必要に応じて中央に配置します。

HTTPは、URLが後続の?と異なる動作をするとは想定していません。これはパラメータの空のセットを意味するだけで、これは?手段。混乱しているだけでなく、プロキシまたはWebブラウザが後続の「?」を削除する可能性があるため、相互運用性の問題が発生する可能性があります。それは効果がないはずであるという期待で。

関連する問題