【发布时间】:2020-02-07 09:09:51
【问题描述】:
我正在尝试通过 validators.py 或 def clean(self) 在 Django 模型中的电子邮件字段上引发 ValidationError,以了解数据库中是否存在电子邮件。
下面是我的模型简介:
class Profile(models.Model)
...
email = models.EmailField()
...
def __str__(self)
return self.f_name
我知道我可以在模型字段中添加unique=True 以确保这一点,或者只是在表单中添加cleaned_data,但我想要的解决方案是validator.py 或def clean(self) 中的def clean(self)。
【问题讨论】:
-
那么确切的问题是什么?您已经知道可以使用验证器或覆盖模型的
clean()方法来执行您想要的操作。你尝试了什么? -
@dirkgroten 我尝试使用
clean()和validators.py,但与检查表单中是否存在电子邮件的直接方法不同,我无法编写正确的代码来检查是否validators.py或clean()中存在电子邮件。所以,我不介意是否可以指出我如何为此编写代码。 -
if Profile.objects.filter(email=self.email).exclude(pk=self.pk).exists()将是clean()中的检查。看docs
标签: python validation django-models django-model-field