为什么当我尝试传递其他参数时,我收到错误:
以下工作正常! (没有参数)
def first(request):
return redirect('confirm')
def confirm(request):
return render(request, 'template.html')
然而,这是我需要的,它没有按预期工作,我得到错误:
反向'确认'使用关键字参数' {'电子邮件':'电子邮件'}'未找到。 1种模式尝试过:[' book / booking_confirmation / $']
def first(request):
return redirect('confirm', email='some_email')
def confirm(request, email):
return render(request, 'template.html', { 'email': email} )
urls.py
urlpatterns += [
url(r'^booking_confirmation/$', views.confirm, name='confirm'),
]
答案 0 :(得分:2)
如果您不想通过重定向中的网址传递电子邮件,则最简单的方法是将其存储在会话中。
def first(request):
request.session['email'] = 'some_email'
return redirect('confirm')
def confirm(request):
return render(request, 'template.html', {'email': request.session['email']})
答案 1 :(得分:1)
配置网址格式以捕获电子邮件。 e.g。
urlpatterns += [
url(r'^booking_confirmation/(?P<email>\w+)$', views.confirm, name='confirm'),
]
您可以为捕获的电子邮件使用更强大的模式匹配,而不是仅捕获单词字符。