Thanks for these improvement. But the main thing i want is to make username field unique = false
On Tuesday, January 9, 2018 at 5:39:32 PM UTC+9, [email protected] wrote: > > I am trying to make username unique = false as there are cases where > username is not needed. Since i am using email address to login. > But with the django user model, how do i customise it ? > > Here is the code for my current user model: > > from django.db import models > from django.contrib.auth.models import AbstractUser > from django.contrib.auth.models import UserManager > from django.db.models import Q > from django.core.validators import RegexValidator > > > class CustomUserManager(UserManager): > > def get_by_natural_key(self, username): > return self.get( > # this comment is to prevent user from using username to login > # Q(**{self.model.USERNAME_FIELD: username}) | > Q(**{self.model.EMAIL_FIELD: username}) > ) > > > class MyUser(AbstractUser): > userId = models.AutoField(primary_key=True) > gender = models.CharField(max_length=6, blank=True, null=True) > nric = models.CharField(max_length=40, blank=True, null=True) > birthday = models.DateField(blank=True, null=True) > birthTime = models.TimeField(blank=True, null=True) > ethnicGroup = models.CharField(max_length=30, blank=True, null=True) > favoriteClinic = models.CharField(max_length=50, blank=True, null=True) > appVer = models.CharField(max_length=50, blank=True, null=True) > osVer = models.CharField(max_length=50, blank=True, null=True) > mobileType = models.IntegerField(blank=True, null=True) > country_code = models.IntegerField(blank=True, null=True) > # mobile_regex = RegexValidator(regex=r'^(\+\d{1,3})?,?\s?\d{8,13}$', > message="Phone number must not consist of space and requires country code. eg > : +6591258565") > mobileNo = models.CharField(max_length=25, blank=True, null=True) # > validators should be a list > height = models.FloatField(blank=True, null=True) > weight = models.FloatField(blank=True, null=True) > bloodtype = models.CharField(max_length=3, blank=True, null=True) > allergy = models.CharField(max_length=30, blank=True, null=True) > # image1 = models.ImageField(upload_to=) > # image = models.BinaryField(editable=True, blank=True, null=True) > # displaypicture = models.ImageField > objects = CustomUserManager() > > def __str__(self): > return self.username > > -- You received this message because you are subscribed to the Google Groups "Django users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/django-users. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/1b1ca8d0-18cb-4d51-908e-9be551cdb8b9%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.

