django中已經給我生成默認的User表,其中的字段已經可以滿足我們的日常需求。
但有時候,我們需要更多的字段,我們就可以自定義。來替換django自帶的User表。
#models.py
from django.contrib.auth.models import AbstractUser class UserProfile(AbstractUser): nick_name = models.CharField(max_length=50, verbose_name=u'昵稱') birthday = models.DateField(verbose_name=u'生日', null=True, blank=True) gender = models.CharField(max_length=10, choices=(("male", u'男'), ("female", u'女')), default='female') address = models.CharField(max_length=11, verbose_name=u'地址', null=True, blank=True) image = models.ImageField(upload_to='image/%Y/%m', default=u"image/default.png", max_length=100) phone = models.CharField(max_length=11, verbose_name=u"手機號碼", null=True, blank=True) # image依賴Pillow class Meta: verbose_name = u"用戶信息" verbose_name_plural = verbose_name def __unicode__(self): return self.username
#adminx.py
from xadmin.plugins.auth import UserAdmin class UserProfileAdmin(UserAdmin): pass
#settings.py
INSTALLED_APPS = [ ... 'users', .... ] AUTH_USER_MODEL="users.UserProfile"
然后就可以makemigrations,migrate
然后就可以創建超級用戶。如果之前創建過,會被刪除,需要重新創建。