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 相关文章推荐
在Django中创建第一个静态视图
Jul 15 Python
详解Python爬虫的基本写法
Jan 08 Python
解析Python中的__getitem__专有方法
Jun 27 Python
python装饰器初探(推荐)
Jul 21 Python
用Python实现命令行闹钟脚本实例
Sep 05 Python
Python语言实现将图片转化为html页面
Dec 06 Python
Sanic框架配置操作分析
Jul 17 Python
浅谈pycharm下找不到sqlalchemy的问题
Dec 03 Python
树莓派使用USB摄像头和motion实现监控
Jun 22 Python
Python模块的定义,模块的导入,__name__用法实例分析
Jan 07 Python
Django模板获取field的verbose_name实例
May 19 Python
Python加速程序运行的方法
Jul 29 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中利用XML技术构造远程服务(下)
2006/10/09 PHP
快速开发一个PHP扩展图文教程
2008/12/12 PHP
深入PHP数据缓存的使用说明
2013/05/10 PHP
php实现将HTML页面转换成word并且保存的方法
2016/10/14 PHP
PHP进程通信基础之信号量与共享内存通信
2017/02/19 PHP
yii框架redis结合php实现秒杀效果(实例代码)
2017/10/26 PHP
关于Laravel参数验证的一些疑与惑
2019/11/19 PHP
JavaScript 事件系统
2010/07/22 Javascript
关于JavaScript中的关联数组分析
2013/04/09 Javascript
JS获得图片alt信息的方法
2015/04/01 Javascript
python实现划词翻译
2020/04/23 Python
python sort、sorted高级排序技巧
2014/11/21 Python
windows系统下Python环境的搭建(Aptana Studio)
2017/03/06 Python
Python3中使用PyMongo的方法详解
2017/07/28 Python
Python文件和流(实例讲解)
2017/09/12 Python
python正则实现计算器功能
2017/12/14 Python
python如何实现数据的线性拟合
2019/07/19 Python
Django实现发送邮件找回密码功能
2019/08/12 Python
奥地利票务门户网站:oeticket.com
2019/12/31 全球购物
信息专业毕业生五年职业规划参考
2014/02/06 职场文书
社区服务活动总结
2014/05/07 职场文书
导师就业推荐信范文
2014/05/22 职场文书
服务标语口号
2014/07/01 职场文书
甜品蛋糕店创业计划书
2014/09/21 职场文书
区政府领导班子个人对照检查材料
2014/09/25 职场文书
2014年新教师工作总结
2014/11/08 职场文书
2014年大堂经理工作总结
2014/11/21 职场文书
2015年秋季学校开学标语
2015/07/16 职场文书
体育委员竞选稿
2015/11/21 职场文书
英文诗歌翻译方法(赏析)
2019/08/16 职场文书
导游词之湖北梁子湖
2019/11/07 职场文书
CSS3 天气图标动画效果
2021/04/06 HTML / CSS
MySQL基于索引的压力测试的实现
2021/11/07 MySQL
MySQL Server 层四个日志
2022/03/31 MySQL
vue 数字翻牌器动态加载数据
2022/04/20 Vue.js
OpenFeign实现远程调用
2022/08/14 Java/Android