2010-06-30 59 views
1

我正在做一个简单的投票类,其中用户可以投票或回答投票。我不希望此函数返回任何内容,因为每个用户的投票都是在他投票时创建的。 问题是,我的重定向或空的返回给我一个错误,如:该页面没有从浏览器正确重定向。django重定向工作不正常

我的代码:

def vote_answer_down(request,id): 
    answer = Answer.objects.get(pk = id) 
    VoteDownAnswer.objects.create(answer = answer, voted_down_by = request.user) 

    return HttpResponseRedirect('.') #or return (without httpresponse),gives the same 

我在哪里错了? 谢谢!

+1

这是否发生在每个浏览器?我只能在IE6中记住这个问题,但在其他浏览器中,它工作正常。 Firefox中的 – yedpodtrzitko 2010-06-30 20:34:42

+0

- 我只安装了它 – dana 2010-06-30 20:49:34

回答

1

http://docs.djangoproject.com/en/1.2/ref/request-response/#django.http.HttpResponseRedirect

构造函数一个参数 - 重定向到路径。这可以是完全合格的网址(例如'http://www.yahoo.com/search/')或绝对网址(例如'/ search /')。请注意,这将返回HTTP状态码302.

是什么让你觉得'。'将工作?

通常使用reverse函数来提供所需的绝对URL。

http://docs.djangoproject.com/en/dev/topics/http/urls/#reverse

+0

如果我把www.google.com放在那里,它也不工作。可能是因为我在那里创建投票对象?我只希望它保留在当前页面 – dana 2010-06-30 20:52:06

+2

www.google.com也不起作用,但请尝试为您的主页输入“http://google.com/”或“/” – jturnbull 2010-06-30 20:54:50

+1

@dana:“可能是因为我在那里创建投票对象?“不。返回对象是返回对象。如果它不会重定向,那么您显然在Django或mod_wsgi或Apache中执行了一些完全错误的操作。由于您没有在技术堆栈上提供太多细节,我们只能猜测。 – 2010-06-30 20:56:56