7

「self」という単語を含むパスのリクエストを受け取ったら、URLと照合する前に、それをユーザーIDに置き換えたいと思います。私はこのようなミドルウェアを使ってみました:

def process_request(self, request):
    if '/self/' in request.path:
        request.path = request.path.replace('/self/','/' + str(request.user.id) + '/')

置換は機能しますが、URLの一致後に行われるようです。この時点より前にパスを変更する方法はありますか?

4

2 に答える 2

10

どうやら、URLマーチングはではなくを使用して行われrequest.pathますrequest.path_info。この変数を変更する同じミドルウェアが機能します。

于 2012-02-17T11:29:04.343 に答える
1

なぜURLを変更してから、その新しいURLと一致させたいのですか?必要なビューとメソッドに直接URLを設定してから、URLを変更した場合と同じようにrequest.user.idで作業してみませんか?

おそらく別の例は、あなたがやろうとしていることを説明するでしょう。

(コメントできないのでこれを答える)

于 2012-02-16T23:37:48.753 に答える