继承AbstractUser
1、创建users app
2、重写Django auth_user表
Django默认创建的auth_user表中已有很多字段,但是还不能满足我们的需求,因此我们需要扩充
Django默认创建的auth_user表是通过 django.contrib.auth.models.py 中的 AbstractUser这个类去定义的,
我们在这里自定义一个UserProfile类来继承AbstractUser这个类
# _*_ coding:utf-8 _*_
from __future__ import unicode_literals
from django.db import models
from django.contrib.auth.models import AbstractUser #import 这个类
class UserProfile(AbstractUser):
nick_name = models.CharField(max_length=20, verbose_name=u"昵称", default=u"")
birthday = models.DateField(verbose_name=u"生日", null=True, blank=True)
gender = models.CharField(choices=(("male", u"男"), ("female", u"女")), default="female")
address = models.CharField(max_length=100, default=u"")
mobile = models.CharField(max_length=11, null=True, blank=True)
image = models.ImageField(upload_to="image/%Y/%m", default=u"image/default.png", max_length=100)
class Meta:
verbose_name = u"用户信息"
verbose_name_plural = verbose_name
db_table = "userprofile"
def __unicode__(self):
return self.username
编辑settings.py添加users app ,并修改为自定义的auth model
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'users', ] AUTH_USER_MODEL = "users.UserProfile" #修改为自定义的model
应为在表字段中有添加ImageField,所以需要安装pillow(python图片处理库)
C:\Users\gck1d6o>workon mxonline
(mxonline) C:\Users\gck1d6o>pip install pillow
然后在生成表
makemigrations users
migrate users