Django扩展默认的User Model
Django中为我们默认提供了用户模块User,但是其当中的字段可能并不能完全满足我们的需求,这时我们就需要自定义一个User Model出来,如果你对自带的User模型很满意,仅仅是需要添加几个额外的字段,你就可以新建一个model类继承AbstractUser, 或者你完全不需要User模型中提供的类似first_name、last_name这些字段,你可以将model类继承AbstractBaseUser,这样只会保留password,last_login,is_active这三个字段。
本文介绍的是继承自AbstractUser的用法
在models.py中新建一个model继承自AbstractUser
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
from django.db import models # Create your models here. from django.contrib.auth.models import AbstractUser from enum import Enum class UserProfile(AbstractUser): GENDER = [ (0,"未知"), (1,"男性"), (2,"女性") ] nickname = models.CharField(max_length=50) intro = models.CharField(max_length=500) mobile = models.CharField(max_length=13) gender = models.IntegerField(choices=GENDER,default=0) REQUIRED_FIELDS = ['nickname', 'intro', 'mobile', 'gender'] |
在setting.py中设置 AUTH_USER_MODEL
1 2 |
AUTH_USER_MODEL = 'User.UserProfile' |
