Advertisement
Guest User

Untitled

a guest
Oct 23rd, 2014
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.21 KB | None | 0 0
  1. User._meta.fields[4].unique = True
  2.  
  3. AUTH_USER_EMAIL_UNIQUE = True
  4.  
  5. from django import forms
  6. from django.contrib.auth.models import User
  7.  
  8. class UserForm(forms.ModelForm):
  9. class Meta:
  10. model = User
  11.  
  12. def clean_email(self):
  13. email = self.cleaned_data.get('email')
  14. username = self.cleaned_data.get('username')
  15. if email and User.objects.filter(email=email).exclude(username=username).count():
  16. raise forms.ValidationError(u'Email addresses must be unique.')
  17. return email
  18.  
  19. # The following lines are equivalent
  20. User._meta.fields[4]
  21. User._meta.get_field('email')
  22.  
  23. def clean_email(self):
  24. email = self.cleaned_data.get('email')
  25. username = self.cleaned_data.get('username')
  26. print User.objects.filter(email=email).count()
  27. if email and User.objects.filter(email=email).count() > 0:
  28. raise forms.ValidationError(u'This email address is already registered.')
  29. return email
  30.  
  31. @receiver(pre_save, sender=User)
  32. def User_pre_save(sender, **kwargs):
  33. email = kwargs['instance'].email
  34. username = kwargs['instance'].username
  35.  
  36. if not email: raise ValidationError("email required")
  37. if sender.objects.filter(email=email).exclude(username=username).count(): raise ValidationError("email needs to be unique")
  38.  
  39. # Fix: username length is too small,email must be unique
  40. from django.contrib.auth.models import User, models
  41. User._meta.local_fields[1].__dict__['max_length'] = 75
  42. User._meta.local_fields[4].__dict__['_unique'] = True
  43.  
  44. from django.core.exceptions import ValidationError
  45. from django.contrib.auth.models import User
  46.  
  47. def validate_email_unique(value):
  48. exists = User.objects.filter(email=value)
  49. if exists:
  50. raise ValidationError("Email address %s already exists, must be unique" % value)
  51.  
  52. from django.contrib.auth.models import User
  53. from django.forms import ModelForm
  54. from main.validators import validate_email_unique
  55.  
  56. class UserForm(ModelForm):
  57. #....
  58. email = forms.CharField(required=True, validators=[validate_email_unique])
  59. #....
  60.  
  61. User._meta.get_field_by_name('email')[0]._unique = True
  62.  
  63. ALTER TABLE auth_user ADD UNIQUE (email);
  64.  
  65. class User(AbstractUser):
  66. ...
  67. class Meta(object):
  68. unique_together = ('email',)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement