方法中的HttpResponseRedirect,当方法没有返回时,不能使用“return method(req)”作为给出错误

时间:2012-05-01 02:40:20

标签: python django

我的代码是这样的:

def check(request):
    if(success):
        #nothing should do
    if(fail):
        return HttpResponseRedirect("http://google.com")

def index(request):
    return check(request)
    #some other taskshere after checking login 

我在其他帖子中读到为了使HttpResponseRedirect有效,我们必须在通话时将其返回,例如:

return check(request)  

当登录失败时,它没问题,但是当登录成功时,方法检查没有返回任何内容,因此给出索引方法没有返回HttpResponse对象的错误。什么是解决方案?

由于

1 个答案:

答案 0 :(得分:0)

使用auth修饰符。

https://docs.djangoproject.com/en/dev/topics/auth/#the-login-required-decorator

如果你必须,有多种方式。你可以按照你的描述去做:

def index(request):
    auth_situation = check(request)

    if auth_situation is None:               
       # some other tasks here, render a template,
       # redirect, do something, man!
    else:
       return auth_situation