时间:2021-05-23
1.自定义用户表 注意事项
必须在settings中配置AUTH_USER_MODEL这个字段
# 覆盖默认的用户模型,使用自定义用户模型 # 语 法:'app的名称.自定义用户模型的名称' AUTH_USER_MODEL = 'admi.UserModel'2.在models文件中编写UserModel类
from django.db import modelsfrom django.contrib.auth.models import AbstractUser# Django框架将createsuperuser创建的用户以及在amdin后台添加的用户,默认都保存在了auth_user这个表中,但是这个表的字段是固定的,如果想给用户扩展一些字段(年龄、性别、住址等),就需要重写User表了,不能再使用auth_user这个表了。class UserModel(AbstractUser): # AbstractUser这个类,也就是Django框架默认使用的一个用于管理用户的User类,这个类生成一个auth_user表。所以,要扩展用户属性,可以继承AbstractUser,在子类UserModel中实现扩展。 nick_name=models.CharField(max_length=25,verbose_name='昵称') user_address=models.CharField(max_length=35,verbose_name='住址') class Meta: # 配置自定义用户表名是user_table db_table='user_table' verbose_name='用户' verbose_name_plural=verbose_name添加完成后,在当前app的admin文件中注册
# 只要使用admin后台系统,所有的Model必须在这里进行注册admin.site.register(UserModel)3.测试
编写完上述步骤后,makemigrations、migrate同步数据库
然后打开用户的数据库管理工具,可以看到user_table这个表已经生成了,而且表中生成了我们创建的两个字段
nick_name和user_address
4.进入admin后台测试
先使用createsuper创建一个superuser用户
通过admin登录到后台
后台自动生成了一个字段代表用户名,我们把UserModel中Meat下verbose_name=‘用户' 修改成用户名,然后刷新admin页面,admin中的字段也会随之改变。
(这样也不需要更新数据库,是不是很方便呢?)
5.后台字段扩展
a.更改用户名显示的内容(只显示admin是不是很单调?)
在UserModel中使用__str__魔法方法
具体效果
b.让后台信息显示多个字段
# 修改app下的admin.py文件 from django.contrib import admin from .models import * class UserAdmin(admin.ModelAdmin): # 设置显示数据库中哪些字段 list_display = ['username','password','nick_name','user_address'] admin.site.register(UserModel,UserAdmin)效果
以上这篇Django自定义用户表+自定义admin后台中的字段实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
管理栏目字段栏目属性自定义字段功能:在系统支持信息属性自定义字段的基础上,6.6版又新增了栏目属性自定义字段功能,让灵活系统更灵活。一、增加栏目字段1、登录后台
帝国CMS7.5版在原来版本支持自定义后台目录基础上(可随时任意重命名admin目录,无需任何设置),还新增了支持自定义后台登录文件,双重自定义,安全性更高。帝
本文实例讲述了帝国cms7.0在后台评论表中显示自定义评论字段内容的方法。分享给大家供大家参考。具体实现方法如下:找到文件/e/admin/pl/ListAll
帝国CMS6.6版新增栏目属性自定义字段功能,在系统支持信息属性自定义字段的基础上,6.6版又新增了栏目属性自定义字段功能,让灵活系统更灵活。栏目自定义字段功能
前言Django附带的认证对于大多数常见情况来说已经足够了,但是如何在Django中使用自定义的数据表进行用户认证,有一种较为笨蛋的办法就是自定义好数据表后,使