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中pygame的mouse鼠标事件用法实例
Nov 11 Python
python 递归遍历文件夹,并打印满足条件的文件路径实例
Aug 30 Python
TensorFlow实现模型评估
Sep 07 Python
Python爬虫基础之XPath语法与lxml库的用法详解
Sep 13 Python
pycharm: 恢复(reset) 误删文件的方法
Oct 22 Python
浅谈pandas筛选出表中满足另一个表所有条件的数据方法
Feb 08 Python
Python3.5内置模块之os模块、sys模块、shutil模块用法实例分析
Apr 27 Python
python 画二维、三维点之间的线段实现方法
Jul 07 Python
pycharm设置鼠标悬停查看方法设置
Jul 29 Python
Python bisect模块原理及常见实例
Jun 17 Python
如何在python中判断变量的类型
Jul 29 Python
整理Python中常用的conda命令操作
Jun 15 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
世界上第一台立体声收音机
2021/03/01 无线电
关于PHP结束标签的使用细节探讨及联想
2013/03/04 PHP
PHP取二进制文件头快速判断文件类型的实现代码
2013/08/05 PHP
PHP记录和读取JSON格式日志文件
2016/07/07 PHP
py文件转exe时包含paramiko模块出错解决方法
2016/08/12 PHP
laravel 框架实现无限级分类的方法示例
2019/10/31 PHP
基于PHP实现短信验证码发送次数限制
2020/07/11 PHP
Javascript 获取链接(url)参数的方法[正则与截取字符串]
2010/02/09 Javascript
JavaScript Event学习补遗 addEventSimple
2010/02/11 Javascript
原生javascript获取元素样式属性值的方法
2010/12/25 Javascript
php图像生成函数之间的区别分析
2012/12/06 Javascript
js中arguments的用法(实例讲解)
2013/11/30 Javascript
使用javascript将时间转换成今天,昨天,前天等格式
2015/06/25 Javascript
谈谈JavaScript中function多重理解
2015/08/28 Javascript
BootStrap智能表单实战系列(三)分块表单配置详解
2016/06/13 Javascript
js利用clipboardData实现截屏粘贴功能
2016/10/12 Javascript
vue中计算属性(computed)、methods和watched之间的区别
2017/07/27 Javascript
Js中async/await的执行顺序详解
2017/09/22 Javascript
vue-cli开发环境实现跨域请求的方法
2018/04/07 Javascript
[01:13:08]2018DOTA2亚洲邀请赛4.6 淘汰赛 mineski vs LGD 第二场
2018/04/10 DOTA
[00:43]拉比克至宝魔导师密钥展示
2018/12/20 DOTA
python中 ? : 三元表达式的使用介绍
2013/10/09 Python
Django数据库操作的实例(增删改查)
2017/09/04 Python
python实现京东秒杀功能
2018/07/30 Python
Python:slice与indices的用法
2019/11/25 Python
Python 内置变量和函数的查看及说明介绍
2019/12/25 Python
雅萌 (YA-MAN) :日本美容家电领域的龙头企业
2017/05/12 全球购物
爱尔兰灯和灯具网上商店:Lights.ie
2018/03/26 全球购物
优秀员工表扬信
2014/01/17 职场文书
团支部书记竞选稿
2015/11/21 职场文书
redis 限制内存使用大小的实现
2021/05/08 Redis
python munch库的使用解析
2021/05/25 Python
浅谈@Value和@Bean的执行顺序问题
2021/06/16 Java/Android
python开发飞机大战游戏
2021/07/15 Python
讲解Python实例练习逆序输出字符串
2022/05/06 Python
Python序列化模块JSON与Pickle
2022/06/05 Python