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生成式的send()方法(详解)
May 08 Python
Python输出由1,2,3,4组成的互不相同且无重复的三位数
Feb 01 Python
python中itertools模块zip_longest函数详解
Jun 12 Python
Python3简单实现串口通信的方法
Jun 12 Python
Django-xadmin+rule对象级权限的实现方式
Mar 30 Python
Python dict的常用方法示例代码
Jun 23 Python
Python selenium爬取微信公众号文章代码详解
Aug 12 Python
解决Windows下python和pip命令无法使用的问题
Aug 31 Python
Python排序函数的使用方法详解
Dec 11 Python
[原创]赚疯了!转手立赚800+?大佬的python「抢茅台脚本」使用教程
Jan 12 Python
python压包的概念及实例详解
Feb 17 Python
python实现图片转字符画
Feb 19 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迭代器的内部执行过程详解
2013/11/12 PHP
PHP面向对象精要总结
2014/11/07 PHP
PDO::inTransaction讲解
2019/01/28 PHP
Prototype源码浅析 String部分(三)之HTML字符串处理
2012/01/15 Javascript
js判断FCKeditor内容是否为空的两种形式
2013/05/14 Javascript
JS增加行复制行删除行的实现代码
2013/11/09 Javascript
浅谈Javascript中深复制
2014/12/01 Javascript
js+html5通过canvas指定开始和结束点绘制线条的方法
2015/06/05 Javascript
js+css实现超简洁的二级下拉菜单效果代码
2015/09/07 Javascript
javascript每日必学之循环
2016/02/19 Javascript
js实现页面跳转的五种方法推荐
2016/03/10 Javascript
JS组件Bootstrap ContextMenu右键菜单使用方法
2016/04/17 Javascript
jQuery得到多个值只能用取Class ,不能用取ID的方法
2016/12/04 Javascript
BootStrap组件之进度条的基本用法
2017/01/19 Javascript
详解vue slot插槽的使用方法
2017/06/13 Javascript
vue+springboot实现项目的CORS跨域请求
2018/09/05 Javascript
JavaScript canvas绘制折线图
2020/02/18 Javascript
python 通过logging写入日志到文件和控制台的实例
2018/04/28 Python
Python2.7 实现引入自己写的类方法
2018/04/29 Python
Django-Model数据库操作(增删改查、连表结构)详解
2019/07/17 Python
详解修改Anaconda中的Jupyter Notebook默认工作路径的三种方式
2021/01/24 Python
is_file和file_exists效率比较
2021/03/14 PHP
HTML5之web workers_动力节点Java学院整理
2017/07/17 HTML / CSS
HTML5实现简单图片上传所遇到的问题及解决办法
2016/01/20 HTML / CSS
Myprotein蛋白粉美国官网:欧洲畅销运动营养品牌
2016/11/15 全球购物
瑞典快乐袜子:Happy Socks
2018/02/16 全球购物
Spartoo荷兰:鞋子、包包和服装
2018/07/12 全球购物
介绍一下Linux内核的排队自旋锁
2014/01/04 面试题
工商管理实习自我鉴定
2013/09/28 职场文书
幼儿园秋游活动方案
2014/01/21 职场文书
关爱女孩行动实施方案
2014/03/13 职场文书
优秀管理者事迹材料
2014/05/22 职场文书
春季运动会开幕词
2015/01/28 职场文书
小学教学工作总结2015
2015/05/13 职场文书
《自然之道》读后感3篇
2019/12/17 职场文书
python 实现两个变量值进行交换的n种操作
2021/06/02 Python