我想做以下事情: - 允许站点用户在表单中编辑他们的电子邮件地址。- 如果他们的电子邮件已经存在于数据库中,只要他们输入的电子邮件属于自己以外的其他人,他们就会看到错误。因此,如果 A 人发送电子邮件 test@yahoo.com 而 B 人已经拥有该电子邮件 - 就会出现错误。如果 A 人发送电子邮件 test@yahoo.com 并且这与她一直使用的电子邮件相同,则没有错误。
如何使用 Django 做到这一点?
我有以下代码:
class UserEditForm(forms.ModelForm):
class Meta:
model = User
fields = ('first_name', 'email', 'last_name', )
def clean_email(self):
email = self.cleaned_data['email']
if email == self.email:
return email
try:
DjangoUser.objects.get(email=email)
raise ValidationError('Email is already taken.')
except DjangoUser.DoesNotExist:
pass
return email
email = forms.EmailField(required=True)
问题是 self.email 没有给我这个人当前的电子邮件。:(