提升forms.ValidationError无法在自定义模板表单中工作

时间:2018-01-28 13:44:37

标签: django error-handling django-forms django-templates

我有自定义模板表单

           {% extends 'accounts/registration/base.html' %}

           {% block content %}
           {% load bootstrap3 %}

          <div class="container">
  `        `<h1>Sign Up</h1>
          <form method="POST">
    {{form.non_field_errors}}
    {% csrf_token %}
    <br>
    <input type="email" name="email" value="email">
    <input type="text" name="phonenumber" value="phonenumber">
    <input type="text" name="name" value="name">
    <input type="password" name="password1" value="password1">
    <input type="password" name="password2" value="password2">
    <input type="text" name="alternavite_mobile_number" value="">
    <input type="submit" class="btn btn default" value="SignUp">
  </form>
     </div>
        {% endblock %}

这是我的views.py文件

def user_signup(request):
registered =False
if request.POST:
    user_form = UserSignupForm(data=request.POST)
    user_pro_form = UserProfileSignupForm(data=request.POST)

    if user_pro_form.is_valid() and user_form.is_valid():
        user = user_form.save()
        user.set_password(user.password)
        user.save()
        user_pro = user_pro_form.save(commit=False)
        user_pro.user = user
        user_pro.save()
        registered = True
    else:
        raise forms.ValidationError(user_form.errors,user_pro_form.errors)
else:
    user_form = UserSignupForm()
    user_pro_form = UserProfileSignupForm()

return render(request,'accounts/registration/customer_signup.html')

我得到了什么

    ValidationError at /accounts/signup/
    {'password2': ["Passwords don't match"], 'phonenumber': ['Enter a valid         
    phone number.']}
    Request Method: POST
    Request URL:    http://127.0.0.1:8000/accounts/signup/
    Django Version: 2.0.1
    Exception Type: ValidationError
    Exception Value:    
    {'password2': ["Passwords don't match"], 'phonenumber': ['Enter a valid         
     phone number.']} 

这不会在实例中引发表单错误,但在显示表单验证错误的错误页面上,您能否建议我如何操作以及使用自定义表单模板的另一种简单方法。

1 个答案:

答案 0 :(得分:0)

{{user_form.email.errors}} 

{{user_form.password.errors}} 
模板中的

app-route