django 自定义用户表
- 在使用django操作数据库时,django中生成默认的User表,其中的字段已经可以满足我们的日常需求。但有时候,我们自己需要更多的字段,我们就可以自定义用户表。来替换django自带的User表。
from django.db import models
from django.contrib.auth.models import AbstractUser
class User(AbstractUser):
phone = models.CharField(max_length=11, null=True, blank=True)
nickname = models.CharField(max_length=50, null=True, blank=True)
img = models.ImageField(upload_to="upload/", default="static/upload/a.jpg", max_length=100)
# upload_to 图像上传地址
class Meta:
db_table = "user"
verbose_name = '用户'
verbose_name_plural = verbose_name
- 注意,User类需要继承AbstractUser;
- 在settings.py 中添加:
AUTH_USER_MODEL = 'app名.类名'
- 在命令行中输入命令,生成用户表。
- db_table = “user” 自定义表名为user
Django 使用admin来管理数据库中的内容
- Django提供了自带的admin功能,可以很方便的管理网站。首先要运行python manage.py createsuperuser 命令来创建一个管理员账户。
- 注意需要输入用户名,邮箱,密码等信息。
- 在admin.py中注册模型:
from django.contrib import admin
#引入要注册的模型
from music.models import Music
from music.models import Banner
from user.models import User
# Register your models here.注册
admin.site.register(Music)
admin.site.register(Banner)
admin.site.register(User)
-
用浏览器访问http://127.0.0.1:8000/admin/,输入注册的管理员账户和密码。
-
可以对数据库表进行简单的增删改查。
-
设置模型 models 的中文名,在models.py 类中添加:
class Meta:
# 设置模型的名字,但是记得复数形式也要设置,否则有些地方就变成 verbose_name + s 了
verbose_name = '用户'
verbose_name_plural = verbose_name
- 刷新admin界面