- 新建一个名为 MxOnline 的 Django 项目,在创建一个名为 users 的App,配置好数据库
开始设计 users App 的 models.py
,这是设计任何一个 App 的第一项工作:
鉴于 Django 自带的 auth_user
不能够完全满足我们的需要,我们需要在继承原有 auth_user
的基础上,在设计一下我们的user
:
from django.db import models
from django.contrib.auth.models import AbstractUser
class UserProfile(AbstractUser):
nick_name = models.CharField(max_length=50, verbose_name="昵称", default="")
birday = models.DateField(verbose_name="生日", null=True, blank=True)
gender = models.CharField(choices=(("male", "男"), ("female", "女")), default="female")
address = models.CharField(max_length=100, default="")
mobile = models.CharField(max_length=11, null=True, blank=True)
image = models.ImageField(upload_to="image/%Y/%m", default="image/default.png", max_length=100)
class Meta:
verbose_name = "用户信息"
verbose_name_plural = verbose_name
def __str__(self):
return self.username
在 settings.py 中注册users App
,并设置 AUTH_USER_MODEL = "user.UserProfile"
替代原有的 auth_user
:
运行 makemigrations 命令报错:
发现是这里错了…
使用 UserProfile
替换 Auth_user
已经完成