这里是 Django 新手。我正在尝试在我的自定义表单中为电子邮件字段引发错误。我的 forms.py 有以下代码来验证电子邮件:
def clean_email(self):
email = self.cleaned_data["email"]
try:
User._default_manager.get(email=email)
except User.DoesNotExist:
return email
raise ValueError({'email':'Email already registered.
Login to continue or use another email.'})
再次输入现有电子邮件时,我在应用程序的调试屏幕上收到以下错误:
我在这里做错了什么?我正在关注这个 LINK
编辑
将 ValueError 更改为 ValidationError 时出现此错误当 error
参数包含多个字段的错误时,参数 field
必须为 None
。
最佳答案
使用 raise ValidationError
而不是 raise ValueError
:
def clean(self):
email = self.cleaned_data["email"]
try:
User._default_manager.get(email=email)
except User.DoesNotExist:
return self.cleaned_data
raise ValidationError({'email':'Email already registered. Login to continue or use another email.'})
关于python - 将 ValidationError 提升为字典时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30575552/