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利用pyHook实现监听用户鼠标与键盘事件
Aug 21 Python
python关闭windows进程的方法
Apr 18 Python
python中for语句简单遍历数据的方法
May 07 Python
Python max内置函数详细介绍
Nov 17 Python
python实现Adapter模式实例代码
Feb 09 Python
Python实现查看系统启动项功能示例
May 10 Python
python 运用Django 开发后台接口的实例
Dec 11 Python
PyQt QListWidget修改列表项item的行高方法
Jun 20 Python
PyCharm 2019.3发布增加了新功能一览
Dec 08 Python
Python实现FLV视频拼接功能
Jan 21 Python
使用openCV去除文字中乱入的线条实例
Jun 02 Python
PyQt5 QDockWidget控件应用详解
Aug 12 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最简单的删除目录与文件实现方法
2014/11/28 PHP
php将数组转换成csv格式文件输出的方法
2015/03/14 PHP
Yii获取当前url和域名的方法
2015/06/08 PHP
php微信浏览器分享设置以及回调详解
2016/08/01 PHP
jquery中ajax函数执行顺序问题之如何设置同步
2014/02/28 Javascript
javascript事件冒泡详解和捕获、阻止方法
2014/04/12 Javascript
JS 通过系统时间限定动态添加 select option的实例代码
2016/06/09 Javascript
Wireshark基本介绍和学习TCP三次握手
2016/08/15 Javascript
详解JavaScript中this的指向问题
2017/01/20 Javascript
jQuery时间验证和转换为标准格式的时间格式
2017/03/06 Javascript
jquery实现点击a链接,跳转之后,该a链接处显示背景色的方法
2018/01/18 jQuery
vue配置多页面的实现方法
2018/05/22 Javascript
clipboard.js在移动端复制失败的解决方法
2018/06/13 Javascript
浅析vue-router原理
2018/10/19 Javascript
Vue 理解之白话 getter/setter详解
2019/04/16 Javascript
es6 for循环中let和var区别详解
2020/01/12 Javascript
微信小程序实现音频文件播放进度的实例代码
2020/03/02 Javascript
Node.js API详解之 zlib模块用法分析
2020/05/19 Javascript
javascript实现贪吃蛇小游戏
2020/07/28 Javascript
vue或react项目生产环境去掉console.log的操作
2020/09/02 Javascript
解决vue项目中遇到 Cannot find module ‘chalk‘ 报错的问题
2020/11/05 Javascript
解决python3中自定义wsgi函数,make_server函数报错的问题
2017/11/21 Python
Python学习笔记之图片人脸检测识别实例教程
2019/03/06 Python
python itchat实现调用微信接口的第三方模块方法
2019/06/11 Python
浅析Python 简单工厂模式和工厂方法模式的优缺点
2020/07/13 Python
HTML5本地存储之Web Storage应用介绍
2013/01/06 HTML / CSS
static关键字的用法
2013/10/07 面试题
解释一下ruby中的特殊方法与特殊类
2013/02/26 面试题
营销专业应届生求职信
2013/11/26 职场文书
个人党性剖析材料
2014/02/03 职场文书
小学数学课后反思
2014/04/23 职场文书
元旦晚会活动总结
2014/07/09 职场文书
2015年教师个人业务工作总结
2015/10/23 职场文书
2016年中秋节慰问信
2015/12/01 职场文书
教你怎么用python爬取爱奇艺热门电影
2021/05/20 Python
详解vue身份认证管理和租户管理
2021/05/25 Vue.js