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 Mysql自动备份脚本
Jul 14 Python
python封装对象实现时间效果
Apr 23 Python
Python中使用SAX解析xml实例
Nov 21 Python
Python实现的基于优先等级分配糖果问题算法示例
Apr 25 Python
Python3调用百度AI识别图片中的文字功能示例【测试可用】
Mar 13 Python
python创建与遍历List二维列表的方法
Aug 16 Python
详解Python高阶函数
Aug 15 Python
Python 下载Bing壁纸的示例
Sep 29 Python
Python之字典添加元素的几种方法
Sep 30 Python
python自动生成证件号的方法示例
Jan 14 Python
Python爬虫网络请求之代理服务器和动态Cookies
Apr 12 Python
使用python绘制分组对比柱状图
Apr 21 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 方便水印和缩略图的图形类
2009/05/21 PHP
yii插入数据库防并发的简单代码
2017/05/27 PHP
js实现的日期操作类DateTime函数代码
2010/03/16 Javascript
JavaScript学习历程和心得小结
2010/08/16 Javascript
jquery实现文字由下到上循环滚动的实例代码
2013/08/09 Javascript
Javascript中string转date示例代码
2013/11/01 Javascript
jquery 根据name名获取元素的value值
2015/02/27 Javascript
jquery中$each()方法的使用指南
2015/04/30 Javascript
Jquery基础教程之DOM操作
2015/08/19 Javascript
原生js实现class的添加和删除简单代码
2016/07/12 Javascript
jQuery实现带遮罩层效果的blockUI弹出层示例【附demo源码下载】
2016/09/14 Javascript
leaflet的开发入门教程
2016/11/17 Javascript
微信小程序picker组件简单用法示例【附demo源码下载】
2017/12/05 Javascript
vue-router项目实战总结篇
2018/02/11 Javascript
微信小程序分享海报生成的实现方法
2018/12/10 Javascript
微信小程序获取用户openid的实现
2018/12/24 Javascript
微信小程序API—获取定位的详解
2019/04/30 Javascript
javascript中call,apply,callee,caller用法实例分析
2019/07/24 Javascript
JS中数组实现代码(倒序遍历数组,数组连接字符串)
2019/12/29 Javascript
vue-router懒加载的3种方式汇总
2021/02/28 Vue.js
[02:54]DOTA2英雄基础教程 暗影牧师戴泽
2013/12/05 DOTA
[01:16:28]DOTA2-DPC中国联赛 正赛 iG vs Magma BO3 第二场 2月23日
2021/03/11 DOTA
python ip正则式
2009/05/07 Python
python使用matplotlib绘制柱状图教程
2017/02/08 Python
django 通过url实现简单的权限控制的例子
2019/08/16 Python
Python中filter与lambda的结合使用详解
2019/12/24 Python
python多线程使用方法实例详解
2019/12/30 Python
详解python tkinter包获取本地绝对路径(以获取图片并展示)
2020/09/04 Python
举例讲解Python装饰器
2020/12/24 Python
介绍一下SQL Server里面的索引视图
2016/07/31 面试题
法学专业本科生自荐信范文
2013/12/17 职场文书
《猴子种果树》教学反思
2014/04/26 职场文书
环保建议书600字
2014/05/14 职场文书
详解Laravel服务容器的优势
2021/05/29 PHP
python识别围棋定位棋盘位置
2021/07/26 Python
Vue组件更新数据v-model不生效的解决
2022/04/02 Vue.js