私信  •  关注

2 revs, 2 users 96%<br/>user47

2 revs, 2 users 96%<br/>user47 最近创建的主题
2 revs, 2 users 96%<br/>user47 最近回复了
12 年前
回复了 2 revs, 2 users 96%<br/>user47 创建的主题 » 如何使电子邮件字段在Django的contrib.auth模型用户中唯一

此方法不会使电子邮件字段在数据库级别上唯一,但值得尝试。

使用习惯 validator :

from django.core.exceptions import ValidationError
from django.contrib.auth.models import User

def validate_email_unique(value):
    exists = User.objects.filter(email=value)
    if exists:
        raise ValidationError("Email address %s already exists, must be unique" % value)

然后在Forms.py中:

from django.contrib.auth.models import User
from django.forms import ModelForm
from main.validators import validate_email_unique

class UserForm(ModelForm):
    #....
    email = forms.CharField(required=True, validators=[validate_email_unique])
    #....