【发布时间】:2014-04-29 11:37:03
【问题描述】:
在我的应用程序中,我遇到了以下问题。在注册期间,电子邮件地址必须使用自定义 *clean_edit* 方法是唯一的。所以在 update_profile 表单中,我使用相同的函数(*clean_edit*)来检查输入的电子邮件地址是否唯一。如果用户没有更改他的电子邮件地址(并且只更改他的名字),那么他会收到一条错误消息,显示“此电子邮件已被其他用户使用”。发生这种情况是因为在更新配置文件表单中,电子邮件地址的占位符具有当前用户的电子邮件地址。所以当点击提交时,该应用程序也尝试更新他的电子邮件地址,但返回电子邮件已被使用的错误。您可以在下面找到 UpdateProfile 类的 clean_email。
def clean_email(self):
username = self.cleaned_data.get('username')
email = self.cleaned_data.get('email')
if User.objects.filter(email=email).exclude(username=username).exclude(email=email).count():
raise forms.ValidationError('This email address is already in use. '
'Please supply a different email address.')
return email
【问题讨论】:
标签: django email unique edit profile