Django自定义用户表+自定义admin后台中的字段实例

 更新时间:2019年11月18日 10:13:00   作者:小凤九  
今天小编就为大家分享一篇Django自定义用户表+自定义admin后台中的字段实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

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同步数据库

然后打开用户的数据库管理工具,可以看到user_table这个表已经生成了,而且表中生成了我们创建的两个字段

nick_name和user_address

4.进入admin后台测试

先使用createsuper创建一个superuser用户

通过admin登录到后台

后台自动生成了一个字段代表用户名,我们把UserModel中Meat下verbose_name=‘用户' 修改成用户名,然后刷新admin页面,admin中的字段也会随之改变。

(这样也不需要更新数据库,是不是很方便呢?)

5.后台字段扩展

a.更改用户名显示的内容(只显示admin是不是很单调?)

在UserModel中使用__str__魔法方法

具体效果

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后台中的字段实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • python 中open文件路径的选择问题解析

    python 中open文件路径的选择问题解析

    这篇文章主要介绍了python 中open文件路径的选择问题解析,本文给大家分享完美解决方法,需要的朋友可以参考下
    2021-07-07
  • for循环在Python中的工作原理详细

    for循环在Python中的工作原理详细

    for...in 是Python程序员使用最多的语句,for 循环用于迭代容器对象中的元素,这些对象可以是列表、元组、字典、集合、文件,甚至可以是自定义类或者函数,下面小编将举例说明,需要的朋友可以参考下
    2021-10-10
  • Linux下Python安装完成后使用pip命令的详细教程

    Linux下Python安装完成后使用pip命令的详细教程

    这篇文章主要介绍了Linux下Python安装完成后使用pip命令的详细教程,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-11-11
  • python随机在一张图像上截取任意大小图片的方法

    python随机在一张图像上截取任意大小图片的方法

    今天小编就为大家分享一篇python随机在一张图像上截取任意大小图片的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • django生产环境搭建(uWSGI+django+nginx+python+MySQL)

    django生产环境搭建(uWSGI+django+nginx+python+MySQL)

    本文主要介绍了django生产环境搭建,主要包括uWSGI+django+nginx+python+MySQL,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • Python定义函数功能与用法实例详解

    Python定义函数功能与用法实例详解

    这篇文章主要介绍了Python定义函数功能与用法,结合实例形式详细分析了Python函数的定义、参数、返回值、作用域等相关概念、原理及使用方法,需要的朋友可以参考下
    2019-04-04
  • python中图形库turtle库详解(适用于计算机二级)

    python中图形库turtle库详解(适用于计算机二级)

    Turtle库是Python语言中的一个图形库,可以用来绘制各种形状,如线条、矩形、圆形等等,下面这篇文章主要给大家介绍了关于python中图形库turtle库的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-08-08
  • 简单示例入门了解WxPython教程

    简单示例入门了解WxPython教程

    这篇文章主要通过演示简单示例带大家入门了解WxPython,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-11-11
  • Tensorflow中的降维函数tf.reduce_*使用总结

    Tensorflow中的降维函数tf.reduce_*使用总结

    这篇文章主要介绍了Tensorflow中的降维函数tf.reduce_*使用总结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-04-04
  • python实现自动登录人人网并采集信息的方法

    python实现自动登录人人网并采集信息的方法

    这篇文章主要介绍了python实现自动登录人人网并采集信息的方法,涉及Python模拟登陆及正则匹配的相关技巧,需要的朋友可以参考下
    2015-06-06

最新评论