Django中为我们默认提供了用户模块User
,但是其当中的字段可能并不能完全满足我们的需求,这时我们就需要自定义一个User Model
出来,如果你对自带的User模型很满意,仅仅是需要添加几个额外的字段,你就可以新建一个model类继承AbstractUser
, 或者你完全不需要User模型中提供的类似first_name
、last_name
这些字段,你可以将model
类继承AbstractBaseUser
,这样只会保留password
,last_login
,is_active
这三个字段。
本文介绍的是继承自
AbstractUser
的用法
在models.py中新建一个model继承自AbstractUser
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
AUTH_USER_MODEL = 'User.UserProfile'