我想在提交时指导我的用户,已经收到了一封电子邮件。在我订阅的表格上,我有这段代码。
def clean_email(self):
try:
emailCheck = User.objects.filter(username=self.cleaned_data['email'])
except User.DoesNotExist:
raise ValidationError('Email already exists')
我需要使用try / except,因为当用户插入正确的数据时我遇到了问题。
答案 0 :(得分:3)
.filter()
方法不会引发DoesNotExist
异常。您应该使用.get()
方法来提出这些例外。
如果找不到对象,
get()
会引发DoesNotExist
异常 给定的参数。此异常是模型的属性 类。
def clean_email(self):
try:
emailCheck = User.objects.get(username=self.cleaned_data['email'])
except User.DoesNotExist:
raise ValidationError('Email already exists')
注意:强>
如果您只是想检查具有给定username
的用户是否存在,您应该使用.exists()
方法(也建议使用@Sayse)。
如果QuerySet包含任何结果,则返回
True
,False
如果没有。
答案 1 :(得分:2)