2

games/vote というページに、パス「add_title/」をアクションとして使用するフォームがあります。

<form method="post" action="add_title/" method="post">

関連するビューから以下を返します。

return render_to_response('games/votes.html', {'vote_list': not_owned_vote_list,},
                        context_instance = RequestContext(request))

ビューから戻ると、url は games/vote/add_title に残ります。

リクエストの path および path_info 属性を変更しようとしましたが、役に立ちませんでした:

request.path = "/games/vote/"
request.path_info = "/games/vote/"

Web ページに戻ったときにパスを /games/vote にしたい。

私は何を間違っていますか?

4

1 に答える 1

1

このようにパスを変更することはできません。これを行う唯一の方法は、ブラウザーに別の URL にリダイレクトするように指示することです。実際、これは、フォーム POST の後にドキュメントで推奨されていることとまったく同じです。

if form.is_valid():
    ... process ...
    return HttpResponseRedirect('/games/vote/')

(また、URL をreverse()ハードコーディングするのではなく、名前付き URL の使用を検討する必要があります。)

于 2012-09-29T17:48:27.493 に答える