Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- User._meta.fields[4].unique = True
- AUTH_USER_EMAIL_UNIQUE = True
- from django import forms
- from django.contrib.auth.models import User
- class UserForm(forms.ModelForm):
- class Meta:
- model = User
- def clean_email(self):
- email = self.cleaned_data.get('email')
- username = self.cleaned_data.get('username')
- if email and User.objects.filter(email=email).exclude(username=username).count():
- raise forms.ValidationError(u'Email addresses must be unique.')
- return email
- # The following lines are equivalent
- User._meta.fields[4]
- User._meta.get_field('email')
- def clean_email(self):
- email = self.cleaned_data.get('email')
- username = self.cleaned_data.get('username')
- print User.objects.filter(email=email).count()
- if email and User.objects.filter(email=email).count() > 0:
- raise forms.ValidationError(u'This email address is already registered.')
- return email
- @receiver(pre_save, sender=User)
- def User_pre_save(sender, **kwargs):
- email = kwargs['instance'].email
- username = kwargs['instance'].username
- if not email: raise ValidationError("email required")
- if sender.objects.filter(email=email).exclude(username=username).count(): raise ValidationError("email needs to be unique")
- # Fix: username length is too small,email must be unique
- from django.contrib.auth.models import User, models
- User._meta.local_fields[1].__dict__['max_length'] = 75
- User._meta.local_fields[4].__dict__['_unique'] = True
- 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)
- 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])
- #....
- User._meta.get_field_by_name('email')[0]._unique = True
- ALTER TABLE auth_user ADD UNIQUE (email);
- class User(AbstractUser):
- ...
- class Meta(object):
- unique_together = ('email',)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement