【发布时间】:2020-11-09 23:47:12
【问题描述】:
当有人注册新帐户时,我需要添加错误(如果有)。现在,我第一次尝试通过 ValidationError 引发错误,在我看来它已经触发,但是当我关闭 IDE 并再次打开它时,它会显示下一个错误:
异常类型:ValueError
异常值:字典更新序列元素#0 的长度为 211; 2 是必需的
我不知道到底发生了什么?以及为什么在我关闭 IDE 之前没有出现该错误?
views.py
# User registration
class Register(CreateView):
template_name = 'account/register.html'
form_class = SignUp
success_url = reverse_lazy('account:login')
forms.py
# UserCreationForm
class SignUp(UserCreationForm):
email = forms.EmailField(required=True)
first_name = forms.CharField(required=True)
last_name = forms.CharField(required=True)
class Meta:
model = User
fields = ['username',
'first_name',
'last_name',
'password1',
'password2',
'email']
def clean_username(self):
data = self.cleaned_data['username']
if User.objects.filter(username=data).exists():
raise ValidationError('username is already exists')
return data
def clean_email(self):
data = self.cleaned_data['email']
if User.objects.filter(email=data).exists():
raise ValidationError('email is already exists')
return data
注册.html
<form method="post">
{% csrf_token %}
<div class="form-group">
<div class="right-inner-addon">
{% for field in form %}
{% if form.errors %}
{% for error in field.errors %}
<div class="text-danger">
<strong>{{ error }}</strong>
</div>
{% endfor %}
{% endif %}
{{ field }}
{% endfor %}
</div>
</div>
<hr>
<div class="tab-content">
<div class="tab-pane fade in active text-center" id="pp">
<button type="submit" class="btn btn-primary btn-lg btn-block"><i class="fa fa-plus"></i> Create Account</button>
</div>
</div>
</form>
【问题讨论】:
标签: django django-forms django-class-based-views django-errors