Django3.2 扩展用户模型

Django3.2 扩展用户模型

1.创建Django项目

django-admin startproject examrev3

2. 创建app

python manage.py startapp account
python manage.py startapp student

3. 扩展用户模型

account 应用 models.py 中创建自定义用户类MyUser并继承AbstractUser

from django.db import models

from django.contrib.auth.models import AbstractUser


class MyUser(AbstractUser):
    identity_choices = (
        (u'S', u'学生'),
        (u'M', u'报考管理员'),
        (u'C', u'班主任'),
    )
    person_id = models.CharField(verbose_name="身份证号码", max_length=18, unique=True)
    student_id = models.CharField(verbose_name="学籍号码", max_length=19, unique=True)
    identity = models.CharField(verbose_name='用户身份', max_length=2, choices=identity_choices)

    class Meta(AbstractUser.Meta):
        pass

4. 项目settings中配置

AUTH_USER_MODEL = 'account.Myuser'

在其他模型类中需要关联用户模型,需要做如下配置实现关联用户表。
to=settings.AUTH_USER_MODEL

class StudentInfo(models.Model):
    # 考生信息
    student_user = models.ForeignKey(verbose_name="用户", to=settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
    student_name = models.CharField(verbose_name='考生姓名', max_length=64, help_text='姓名必须与户口本一致,姓名中的圆点请使用·')
    id_type = models.IntegerField(verbose_name='证件类型', choices=id_type_choices, default=1)
    per_id = models.CharField(verbose_name='证件号码', max_length=18, unique=True)
    ...

5. 配置admin.py

from django.contrib import admin
from account import models

# Register your models here.
admin.site.register(models.MyUser)

6. 数据库迁移

python manage.py makemigrations
python manage.py migrate

7. 扩展完成后的用户表

在这里插入图片描述
可以创建超级用户并完成登录。

Django解决扩展用户表时,后台Admin显示密码为明文的问题
https://blog.csdn.net/qq_42164596/article/details/104392262

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值