Django:页面无法正确重定向

时间:2019-03-08 16:37:13

标签: python django django-views

我想在数据库中检查用户是否在下次登录时填写了Payment_receipt模型表单,这是该用户下次登录时的信息。如果该用户最初没有填写表单,他将被重定向到名为plan_select的页面。我尝试过这种观点。但这给了我错误:“ 页面重定向不正确”。

def homeview(request):
    if request.user.is_authenticated:
        if Payment_receipt.objects.filter(user = request.user).exists():
            return redirect('home')
        else:
            return redirect('plan_select')
    else:
        return render(request, 'services/home.html')

可能出了什么问题?

我要在条件if request.user.is_authenticated:下对该视图中的其他模型进行相同的检查。如何根据条件正确重定向?

1 个答案:

答案 0 :(得分:0)

您尚未显示URL模式,但似乎return redirect('home')正在重定向到同一视图,从而创建了一个重定向循环。

也许您想在此处呈现模板:

def homeview(request):
    if request.user.is_authenticated:
        if Payment_receipt.objects.filter(user = request.user).exists():
            return render(request, 'services/home.html')
        else:
            return redirect('plan_select')
    else:
        return render(request, 'services/home.html')

您可以稍微简化一下,以避免重复return render()行:

def homeview(request):
    if request.user.is_authenticated:
        if not Payment_receipt.objects.filter(user = request.user).exists():
            return redirect('plan_select')
    return render(request, 'services/home.html')