Django:如何使用参数重定向

P. *_*eda 6 python django

提交表单后,我想重定向到一个特定的视图,传递一个 flag=True 以激活一个弹出窗口,如:

def view1(request):
    if request.method == 'POST':
        form = Form(request.POST)
        if form.is_valid():
            form.save()
            return redirect('new_view') # Here I need to send flag=True
    else:
        form = Form()
        return render(request, 'template.html', {'form': form})
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

Hen*_*son 6

如果参数应该出现在查询字符串或视图的参数中,则不太清楚参数的含义。

不管怎样,下面是两种解决方案;

重定向接受 args 和 kwargs

redirect('new_view', flag='show') # This is the argument of a view
Run Code Online (Sandbox Code Playgroud)

或者

redirect('{}?flag=True'.format(reverse('new_view'))
Run Code Online (Sandbox Code Playgroud)

然后你可以像这样在视图中访问它

show_flag = bool(request.GET.get('flag', False))
Run Code Online (Sandbox Code Playgroud)