构建用户模型

  1. 进入django项目路径,创建apps文件夹用来存放自定义的app
    在这里插入图片描述
  2. 在apps路径下输入命令创建users app
    在这里插入图片描述
    在这里插入图片描述
  3. 编辑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'))
  1. 编辑用户模型
    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',
]
  1. 生成数据表
    a) 由于原用户模型使用系统原生模型,需要清除原来的依赖表重新建立,这里直接drop掉数据库后重新create一个
DROP DATABASE poetry;
CREATE DATABASE poetry;

b) 重新生成数据表

python manage.py makemigrations
python manage.py migrate
  1. 可以看到auth_user开头的数据表已经没有了,取而代之的时users_useraccount开头的数据表,其中users_useraccount中字段已经更新
    在这里插入图片描述
    在这里插入图片描述
    经过以上步骤,user模型已经构建完成
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值