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. 结果