- 进入django项目路径,创建apps文件夹用来存放自定义的app
- 在apps路径下输入命令创建users app
- 编辑settings.py,添加apps为项目路径
import os
import sys
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.insert(0, BASE_DIR)
sys.path.insert(0, os.path.join(BASE_DIR, 'apps'))
- 编辑用户模型
a) 继承AbstractUser,可以查看系统自带用户模型中的字段
b) 编辑users中的models.py,添加我们需要的字段
from django.db import models
from django.contrib.auth.models import AbstractUser
from django.utils import timezone
# Create your models here.
class UserAccount(AbstractUser):
GENDER_CHOICES = (
("male", "男"),
("female", "女"),
("unknown", "未知")
)
birthday = models.DateField("出生年月", default=timezone.now)
gender = models.CharField("性别", max_length=10, choices=GENDER_CHOICES, default="未知")
mobile = models.CharField("手机号码", max_length=11, unique=True, null=False, blank=False, default='')
avatar = models.CharField("头像", max_length=500, null=True, blank=True)
class Meta:
verbose_name = "用户信息"
verbose_name_plural = verbose_name
def __str__(self):
return self.username
c) 在settting.py中添加如下代码,设置项目使用自定义的用户模型
AUTH_USER_MODEL = 'users.UserAccount'
d) 在settings.py中的INSTALLED_APPS内添加users应用
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'apps.users',
]
- 生成数据表
a) 由于原用户模型使用系统原生模型,需要清除原来的依赖表重新建立,这里直接drop掉数据库后重新create一个
DROP DATABASE poetry;
CREATE DATABASE poetry;
b) 重新生成数据表
python manage.py makemigrations
python manage.py migrate
- 可以看到auth_user开头的数据表已经没有了,取而代之的时users_useraccount开头的数据表,其中users_useraccount中字段已经更新
经过以上步骤,user模型已经构建完成