Django使用HttpResponseRedirect Reverse传递参数

时间:2014-12-11 06:44:11

标签: python django

我希望在完成"简单注册后,将用户重定向到注册页面。登录页面上的表单,因此我需要传递他们在" easy register"中输入的登录页面名称,手机和用户的电子邮件。形成。但我一直收到这个错误:

Reverse for 'signup_page' with arguments '()' and keyword arguments '{'landing_name': u'promotion-title-1', 'cell_phone': u'1111111', 'user_email': u'aaq@aaa.com'}' not found. 0 pattern(s) tried: []

我已经搜索了一些解决方案,但我仍然无法解决这个问题。

这是urls.py:

(r'^signup/(?P<landing_name>[-\w]+)/(?P<cell_phone>[-\w]+)/(?P<user_email>[\w.%+-]+@[A-Za- 
z0-9.-]+\.[A-Za-z]{2,4})/$', signup_page, {'template_name':'promotion/signup_page.html'},
'signup_page'),

views.py:

url = reverse('signup_page', kwargs={'landing_name': landing_name, 'cell_phone': cell_phone, 'user_email': email, })
return HttpResponseRedirect(url)

signup_page views.py:

def signup_page(request, landing_name, cell_phone, user_email):

    landing = get_object_or_404(LandingPage, url=landing_name)

    data = {
        'email':user_email,
    }

    if request.method == 'POST':
        form = User_SignUp_Form(request.POST)

        if form.is_valid():
            username = form.cleaned_data['email']

            if form.cleaned_data['password_1'] != form.cleaned_data['password_2']:
                password_error = 'passwords do not match each other'
            else:
                password = form.cleaned_data['password1']

                try:
                    #check for duplicate username
                    User.objects.get(username=username)
                    username_error = 'username already exist'
                except:
                    #initial creation of user object
                    try:
                        password = form.cleaned_data['password_1']
                        User.objects.create_user(username,
                                                 username,
                                                 password,
                        )
                        user = User.objects.get(username=username)
                        UserProfile.objects.create_user(user=user, cell_phone=cell_phone,)
                        next = request.GET.get('next')
                        if next is None:
                            next = '/'
                        return redirect('/account/thankyou/?next=%s'%next)

                    except:
                        pass

    else:
        form = User_SignUp_Form(initial=data)

    return render_to_response("promotion/signup_page.html", locals(), context_instance=RequestContext(request))

0 个答案:

没有答案