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/"

返回网页后,我希望路径为 /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 回答