带有附加参数的 Django redirect()

GRS*_*GRS 3 python django django-views

为什么当我尝试传递附加参数时,出现错误:

下面的工作正常!(不带参数)

def first(request):
    return redirect('confirm')

def confirm(request):
    return render(request, 'template.html')
Run Code Online (Sandbox Code Playgroud)

然而,这正是我所需要的,它没有按预期工作,并且出现错误:

找不到关键字参数 '{'email': 'email'}' 的反向 'confirm'。尝试了 1 个模式:['book/booking_confirmation/$']

def first(request):
    return redirect('confirm', email='some_email')

def confirm(request, email):
    return render(request, 'template.html', { 'email': email} )
Run Code Online (Sandbox Code Playgroud)

urls.py

urlpatterns += [
    url(r'^booking_confirmation/$', views.confirm, name='confirm'),
]
Run Code Online (Sandbox Code Playgroud)

Wil*_*ing 10

如果您不想通过重定向中的 URL 传递电子邮件,将其存储在会话中可能是最简单的方法。

def first(request):
    request.session['email'] = 'some_email'
    return redirect('confirm')

def confirm(request):
    return render(request, 'template.html', {'email': request.session['email']})
Run Code Online (Sandbox Code Playgroud)