繁体   English   中英

Django redirect()带有其他参数

[英]Django redirect() with additional parameters

为什么当我尝试传递其他参数时,我收到错误:

以下工作正常! (没有参数)

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

def confirm(request):
    return render(request, 'template.html')

然而,这是我需要的,它不能按预期工作,我得到错误:

使用关键字参数'{'email':'email'}'找不到'确认'。 尝试了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'),
]

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

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

def confirm(request):
    return render(request, 'template.html', {'email': request.session['email']})

配置url模式以捕获电子邮件。 例如

urlpatterns += [
    url(r'^booking_confirmation/(?P<email>\w+)$', views.confirm, name='confirm'),
]

您可以对捕获的电子邮件使用更强大的模式匹配,而不是仅捕获单词字符。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM