如果存在电子邮件,如何在 Django 模型中引发 ValidationError

How to raise ValidationError in Django model if email exist

我正在尝试通过 validators.pydef clean(self) 在 Django 模型中的电子邮件字段上引发 ValidationError 以了解数据库中是否存在电子邮件。

以下是我的模型简介:

class Profile(models.Model)
   ...
   email = models.EmailField()
   ...

   def __str__(self)
       return self.f_name

我知道我可以将 unique=True 添加到模型字段以确保这一点,或者只是在表单中做一个 cleaned_data,但我想要的解决方案是 validator.pydef clean(self)models.py.

供将来参考,如果有人遇到同样的问题,感谢@dirkgroten,我能够在 models.py:

中使用 clean() 解决问题
def clean(self)
     if Profile.objects.filter(email=self.email).exclude(pk=self.pk).exists():
            raise ValidationError({'email': _('Email already exists.')})