1

スラッシュの後の全体の URL をスクリプトに渡したい。私が行った場合 :

url(r'^(?P<id>.*)$', alias.get, name="alias"),

次に、関数に渡されたクエリ パラメーターではなく、パス コンポーネントのみを取得します。次に、次のことを行う必要があります。

デフ urlencode(dict) :
    len(dict) == 0 の場合: "" を返す
    パラメータ = {}
    for k, v in dict.items() :
        params[k] = v.encode('utf-8')

    戻る "?" + urllib.urlencode(パラメータ)

デフ取得(ID):
    id += urlencode(request.GET)

私は多くのビューでこれを行っていますが、それを忘れてバグを作成し続けています。クエリ文字列を含むすべてに一致するように urls.py に指示する方法はありますか?

4

2 に答える 2

3

ビュー内で、クエリ文字列を含むURLを取得できますrequest.get_full_path()

http://servername.comの部分request.build_absolute_uri()を含めたい場合もあります。

于 2009-06-05T10:29:16.703 に答える
1

いいえ、それを行う方法はありません。GETパラメーターはurls.pyに渡されません。

なぜあなたはこれをする必要があるのだろうか。ビューの多くがGETクエリ文字列に依存しているのはなぜですか?パラメータをクエリ文字列としてではなく、URL自体の一部にするというDjangoの方法を使用してみませんか。

于 2009-06-05T10:30:35.827 に答える