django 自定义用户模型
我们知道,Django有自带的后台管理和用户模型,但是很多时候不能满足我们的需求,所以记录一下如何实现最基本的自定义用户模型。
我看晚上其他的文章,都比较简略,让我这个刚接触django的新手一头雾水,我来写一个详细版。
django版本:3.1 python版本:3.6.7 使用虚拟环境
首先创建Django 项目。 acsbbs是项目名称,我准备写个论坛练手。
$ django-admin startproject acsbbs
然后创建一个app应用
$ python manage.py startapp accounts
在项目的settings.py中添加:
AUTH_USER_MODEL = 'accounts.User'
accounts是刚创建的app,User是用户对象。
在settings.py文件中注册刚才的app.
我先创建了一个apps文件夹来存放所有的app,把创建的accounts移动到apps中。
修改accounts应用中的model.py
from django.contrib.auth.models import AbstractUser # Create your models here. class User(AbstractUser): pass
User 继承了最基本的模型,这里可以添加自己需要的字段。
修改accounts应用的admin.py
from django.contrib import admin from django .contrib.auth.admin import UserAdmin from acsbbs.apps.accounts.models import User # Register your models here. admin.site.register(User, UserAdmin)
执行:
python manage.py makemigrations
生成迁移文件。
执行:
python manage.py migrate
应用到数据库。