Django自定义用户表+自定义admin后台中的字段实例


Posted in Python onNovember 18, 2019

1.自定义用户表 注意事项

必须在settings中配置AUTH_USER_MODEL这个字段

# 覆盖默认的用户模型,使用自定义用户模型
  # 语 法:'app的名称.自定义用户模型的名称'
  AUTH_USER_MODEL = 'admi.UserModel'

2.在models文件中编写UserModel类

from django.db import models
from 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同步数据库

Django自定义用户表+自定义admin后台中的字段实例

然后打开用户的数据库管理工具,可以看到user_table这个表已经生成了,而且表中生成了我们创建的两个字段

nick_name和user_address

Django自定义用户表+自定义admin后台中的字段实例

4.进入admin后台测试

先使用createsuper创建一个superuser用户

Django自定义用户表+自定义admin后台中的字段实例

通过admin登录到后台

Django自定义用户表+自定义admin后台中的字段实例

后台自动生成了一个字段代表用户名,我们把UserModel中Meat下verbose_name=‘用户' 修改成用户名,然后刷新admin页面,admin中的字段也会随之改变。

(这样也不需要更新数据库,是不是很方便呢?)

Django自定义用户表+自定义admin后台中的字段实例

5.后台字段扩展

a.更改用户名显示的内容(只显示admin是不是很单调?)

在UserModel中使用__str__魔法方法

Django自定义用户表+自定义admin后台中的字段实例

具体效果

Django自定义用户表+自定义admin后台中的字段实例

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后台中的字段实例

以上这篇Django自定义用户表+自定义admin后台中的字段实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python利用hook技术破解https的实例代码
Mar 25 Python
python实现apahce网站日志分析示例
Apr 02 Python
python进阶教程之循环相关函数range、enumerate、zip
Aug 30 Python
Python实现包含min函数的栈
Apr 29 Python
Python实现读取文件最后n行的方法
Feb 23 Python
Python基于Pymssql模块实现连接SQL Server数据库的方法详解
Jul 20 Python
python中MethodType方法介绍与使用示例
Aug 03 Python
如何通过雪花算法用Python实现一个简单的发号器
Jul 03 Python
Flask框架路由和视图用法实例分析
Nov 07 Python
Python Lambda函数使用总结详解
Dec 11 Python
Python + Requests + Unittest接口自动化测试实例分析
Dec 12 Python
python 动态渲染 mysql 配置文件的示例
Nov 20 Python
Django 实现Admin自动填充当前用户的示例代码
Nov 18 #Python
Django 创建后台,配置sqlite3教程
Nov 18 #Python
Python3实现配置文件差异对比脚本
Nov 18 #Python
Python(PyS60)实现简单语音整点报时
Nov 18 #Python
wxPython实现整点报时
Nov 18 #Python
python字符串的拼接方法总结
Nov 18 #Python
python将字符串转变成dict格式的实现
Nov 18 #Python
You might like
使用PHP实现Mysql读写分离
2013/06/28 PHP
php上传文件并显示上传进度的方法
2015/03/24 PHP
thinkphp查询,3.X 5.0方法(亲试可行)
2017/06/17 PHP
php获取微信基础接口凭证Access_token
2018/08/23 PHP
js类式继承的具体实现方法
2013/12/31 Javascript
js动态创建上传表单通过iframe模拟Ajax实现无刷新
2014/02/20 Javascript
js图片预加载示例
2014/04/30 Javascript
jquery 取子节点及当前节点属性值
2014/07/25 Javascript
js时间日期格式化封装函数
2014/12/02 Javascript
小心!AngularJS结合RequireJS做文件合并压缩的那些坑
2016/01/09 Javascript
jquery实现的判断倒计时是否结束代码
2016/02/05 Javascript
JavaScript代码实现图片循环滚动效果
2020/03/19 Javascript
详解Python中logging日志模块在多进程环境下的使用
2016/12/26 Javascript
EasyUI在Panel上动态添加LinkButton按钮
2017/08/11 Javascript
vue配置接口域名方法总结
2019/05/12 Javascript
详解webpack打包vue项目之后生成的dist文件该怎么启动运行
2019/09/06 Javascript
Node.js之删除文件夹(含递归删除)代码实例
2019/09/09 Javascript
layui监听单元格编辑前后交互的例子
2019/09/16 Javascript
基于VSCode调试网页JavaScript代码过程详解
2020/07/20 Javascript
Python执行时间的计算方法小结
2017/03/17 Python
Python tkinter实现的图片移动碰撞动画效果【附源码下载】
2018/01/04 Python
matplotlib.pyplot画图 图片的二进制流的获取方法
2018/05/24 Python
Python读取Excel表格,并同时画折线图和柱状图的方法
2018/10/14 Python
html5 video全屏播放/自动播放的实现示例
2020/08/06 HTML / CSS
玛蒂尔达简服装:Matilda Jane Clothing
2019/02/13 全球购物
Chi Chi London官网:购买连衣裙和礼服
2020/10/25 全球购物
降消项目实施方案
2014/03/30 职场文书
保护环境的标语
2014/06/09 职场文书
公司委托书格式范文
2014/10/09 职场文书
品质保证书格式
2015/02/28 职场文书
2015年社区中秋节活动总结
2015/03/23 职场文书
暑假开始了,你的暑假学习计划写好了吗?
2019/07/04 职场文书
评测 | 大屏显示带收音机的高端音箱,JBL TUNE2便携式插卡音箱实测
2021/04/24 无线电
Go语言特点及基本数据类型使用详解
2022/03/21 Golang
Golang 实现WebSockets
2022/04/24 Golang