从第二个视图重定向

问题描述 投票:0回答:1

这里有一个真正的问题。我在后端有2个视图,确实需要从第二个视图重定向

像这样的观点:

def first_function(request):
    """ Here is some stuff """
    second_function(request)
    return render(request, 'first.html', context)

def second_function(request)
    """ Check here something """
    if ok:
        return
    else: 
        return redirect('/') # this redirect does not work
python django http http-headers
1个回答
1
投票

您的视图second_function会返回回复。只要视图不引发异常,无论响应的状态代码如何,您的first_function都将继续。

如果要返回重定向,则必须将结果分配给状态代码,然后必须将second_function的结果分配给变量,然后检查状态代码。

def first_function(request):
    """ Here is some stuff """
    response = second_function(request)
    if response.status_code == '302':
        return response
    return render(request, 'first.html', context)

这不是构建代码的好方法,但我无法建议替代方法,因为您的代码显示了您真正想要做的事情。

© www.soinside.com 2019 - 2024. All rights reserved.