Django 自定义用户表

当默认的用户表中字段不足以满足我们的业务需求时,可以自己继承和重写用户表,增加想要的字段。

1. 自定义用户表模型

from django.db import models
from django.contrib.auth.models import AbstractUser


# 重新定义用户表
class UserProfile(AbstractUser):
    avatar = models.ImageField(upload_to='image/avatar', default='', max_length=100, null=True, blank=True)
    nick_name = models.CharField(max_length=20, verbose_name=u'昵称', default=u'新用户')
    birthday = models.DateField(verbose_name=u'生日', null=True, blank=True)
    gender = models.CharField(choices=(('men', u''), ('woman', u'')), max_length=8, default='woman' )
    address = models.CharField(max_length=100, default=u'火星村', verbose_name=u'邮箱地址')
    mobile = models.CharField(max_length=11, verbose_name='联系方式', null=True, blank=True, default='')

    class Meta:
        verbose_name = u'用户'
        verbose_name_plural = verbose_name

 

2. 告诉Django使用我们自己的用户表

  配置settings.py:

    app01:app名
    UserProfile:模型的类名
AUTH_USER_MODEL = 'app01.UserProfile'

 

3. 数据库迁移

python3 manage.py makemigrations

python3 manage.py migrate

 

4. 结果

 

posted @ 2024-07-03 13:58  映辉  阅读(67)  评论(0编辑  收藏  举报