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中使用strip()方法删除字符串中空格的教程
May 20 Python
解决Linux系统中python matplotlib画图的中文显示问题
Jun 15 Python
Python中的浮点数原理与运算分析
Oct 12 Python
Python3.7 新特性之dataclass装饰器
May 27 Python
Python+opencv 实现图片文字的分割的方法示例
Jul 04 Python
如何用Python来搭建一个简单的推荐系统
Aug 07 Python
python实现超级玛丽游戏
Mar 18 Python
关于Django Models CharField 参数说明
Mar 31 Python
Python3.9 beta2版本发布了,看看这7个新的PEP都是什么
Jun 10 Python
Python读取二进制文件代码方法解析
Jun 22 Python
python pandas dataframe 去重函数的具体使用
Jul 20 Python
matplotlib制作雷达图报错ValueError的实现
Jan 05 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项目中比较通用的php自建函数的详解
2013/06/06 PHP
PHP实现动态执行代码的方法
2016/03/25 PHP
Yii安装与使用Excel扩展的方法
2016/07/13 PHP
PHP实现十进制数字与二十六进制字母串相互转换操作示例
2018/08/10 PHP
原来Jquery.load的方法可以一直load下去
2011/03/28 Javascript
Javascript操作cookie的函数代码
2012/10/03 Javascript
jquery实现加载等待效果示例
2013/09/25 Javascript
jQuery实现下拉框左右选择的简单实例
2014/02/22 Javascript
Javascript实现字数统计
2015/07/03 Javascript
JavaScript forEach()遍历函数使用及介绍
2015/07/08 Javascript
jQuery短信验证倒计时功能实现方法详解
2016/05/25 Javascript
lhgcalendar时间插件限制只能选择三个月的实现方法
2017/07/03 Javascript
JavaScript常见事件处理程序实例总结
2019/01/05 Javascript
vue-test-utils初使用详解
2019/05/23 Javascript
vue获取验证码倒计时组件
2019/08/26 Javascript
Vue实现渲染数据后控制滚动条位置(推荐)
2019/12/09 Javascript
Node.js API详解之 timer模块用法实例分析
2020/05/07 Javascript
jQuery带控制按钮轮播图插件
2020/07/31 jQuery
[00:36]TI7不朽珍藏III——斯温不朽展示
2017/07/15 DOTA
Python中的Numpy入门教程
2014/04/26 Python
python使用PyGame播放Midi和Mp3文件的方法
2015/04/24 Python
Python使用pygame模块编写俄罗斯方块游戏的代码实例
2015/12/08 Python
Python简单爬虫导出CSV文件的实例讲解
2018/07/06 Python
django使用django-apscheduler 实现定时任务的例子
2019/07/20 Python
详解Python 4.0 预计推出的新功能
2019/07/26 Python
python dataframe NaN处理方式
2019/12/26 Python
python numpy--数组的组合和分割实例
2020/02/24 Python
详解Html5 Canvas画线有毛边解决方法
2018/03/01 HTML / CSS
实习教师自我鉴定
2013/09/27 职场文书
关于雷锋的演讲稿
2014/05/10 职场文书
励志演讲稿200字
2014/08/21 职场文书
2014年置业顾问工作总结
2014/11/17 职场文书
学生评语集锦
2015/01/04 职场文书
2015年药店店长工作总结
2015/04/29 职场文书
公司酒会致辞
2015/07/30 职场文书
js 数组 fill() 填充方法
2021/11/02 Javascript