Django后台admin的使用详解


Posted in Python onJuly 08, 2019

简述:

Django的admin可以提供一个强大的后台管理功能,可以在web界面对数据库进行操作,我们需要修改admin.py将要操作的数据表注册到后台管理中

创建数据表:

为了便于演示,我们在models.py中创建一张img数据表规则

Django后台admin的使用详解

图中 verbo_name 是在admin界面显示表字段的名称,定义的class Meta中的verbo_name是在admin界面显示的表名

修改admin.py文件

from django.contrib import admin
from app1 import models
# Register your models here.

admin.site.register(models.img)  #将表在admin中注册

启动服务,进入界面

python manage.py makemigrations #生成创建数据表py文件
python manage.py migrate #执行py文件,更新数据库
python manage.py runserver #启动服务

打开浏览器,访问 http://127.0.0.1 :8000/admin

Django后台admin的使用详解

输入设置的账号密码,进入界面

Django后台admin的使用详解

默认的功能可以对表进行简单的增删改查,如果需要批量更新之类的操作,则需要定制相应动作

自定义内容显示:

我们选择进入我们创建的表的界面的时候,默认显示的内容是object

Django后台admin的使用详解

可以在models.py中的相应表写下定义__str__的字段

Django后台admin的使用详解

效果如下

Django后台admin的使用详解

默认显示的内容只有一个,我们可以通过定义ModelAdmin中的list_display来修改它:

from django.contrib import admin
from app1.models import img
# Register your models here.

class imgAdmin(admin.ModelAdmin):
  list_display = ('title','summary','file')
  

admin.site.register(img,imgAdmin)

Django后台admin的使用详解

点击一条数据后,将默认显示每个字段不是一个AutoField并且editable=True在单个字段集中具有与模型中定义的字段相同的顺序。

Django后台admin的使用详解

我们可以定义ModelAdmin中的fields或exclude来修改它:

class imgAdmin(admin.ModelAdmin):
  list_display = ('title','summary','file')
  fields = ('title',)

Django后台admin的使用详解

exclude跟fields相反

自定义动作

默认动作只有删除一项

Django后台admin的使用详解

我们可以通过ModelAdmin自定义

def change_up(modeladmin, request, queryset): #定义动作
  queryset.update(stat='1')
change_up.short_description = "up" #重写动作显示名称

def change_down(modeladmin, request, queryset):
  queryset.update(stat='0')
change_down.short_description = "down"



class imgAdmin(admin.ModelAdmin):
  list_display = ('title','summary','file','stat')
  fields = ('title',)
  actions = [change_up,change_down] #绑定动作

Django后台admin的使用详解

 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python网络编程学习笔记(四):域名系统
Jun 09 Python
python 3利用BeautifulSoup抓取div标签的方法示例
May 28 Python
Python基于sklearn库的分类算法简单应用示例
Jul 09 Python
python生成lmdb格式的文件实例
Nov 08 Python
对python中大文件的导入与导出方法详解
Dec 28 Python
一步步教你用python的scrapy编写一个爬虫
Apr 17 Python
python构造函数init实例方法解析
Jan 19 Python
Python 写了个新型冠状病毒疫情传播模拟程序
Feb 14 Python
使用Django实现把两个模型类的数据聚合在一起
Mar 28 Python
OpenCV+python实现膨胀和腐蚀的示例
Dec 21 Python
Python中zipfile压缩包模块的使用
May 14 Python
如何使用Tkinter进行窗口的管理与设置
Jun 30 Python
Python画图实现同一结点多个柱状图的示例
Jul 07 #Python
python画图把时间作为横坐标的方法
Jul 07 #Python
linux环境中没有网络怎么下载python
Jul 07 #Python
python 实现将多条曲线画在一幅图上的方法
Jul 07 #Python
python 实现在一张图中绘制一个小的子图方法
Jul 07 #Python
解决python中用matplotlib画多幅图时出现图形部分重叠的问题
Jul 07 #Python
python画双y轴图像的示例代码
Jul 07 #Python
You might like
如何使用Linux的Crontab定时执行PHP脚本的方法
2011/12/19 PHP
php截取字符串并保留完整xml标签的函数代码
2013/02/06 PHP
dhtmlxTree目录树增加右键菜单以及拖拽排序的实现方法
2013/04/26 PHP
php使用ftp实现文件上传与下载功能
2017/07/21 PHP
jQuery 注意事项 与原因分析
2009/04/24 Javascript
extJS中常用的4种Ajax异步提交方式
2014/03/07 Javascript
node.js中的path.resolve方法使用说明
2014/12/08 Javascript
JavaScript中判断函数、变量是否存在
2015/06/10 Javascript
JavaScript中定义类的方式详解
2016/01/07 Javascript
Javascript自执行匿名函数(function() { })()的原理浅析
2016/05/15 Javascript
Vue高版本中一些新特性的使用详解
2018/09/25 Javascript
Vue一次性简洁明了引入所有公共组件的方法
2018/11/28 Javascript
详解如何写出一个利于扩展的vue路由配置
2019/05/16 Javascript
微信小程序上传图片到php服务器的方法
2019/05/23 Javascript
解决vue打包后刷新页面报错:Unexpected token
2019/08/27 Javascript
vue + elementUI实现省市县三级联动的方法示例
2019/10/29 Javascript
angular组件间传值测试的方法详解
2020/05/07 Javascript
Python中使用tarfile压缩、解压tar归档文件示例
2015/04/05 Python
python提取页面内url列表的方法
2015/05/25 Python
python异步编程 使用yield from过程解析
2019/09/25 Python
简单了解python装饰器原理及使用方法
2019/12/18 Python
基于numpy中的expand_dims函数用法
2019/12/18 Python
python 画图 图例自由定义方式
2020/04/17 Python
解析Python 偏函数用法全方位实现
2020/06/26 Python
Python自动化操作实现图例绘制
2020/07/09 Python
如何使用Python调整图像大小
2020/09/26 Python
日本高端护肤品牌:Tatcha
2016/08/29 全球购物
计算机专业职业生涯规划范文
2014/01/19 职场文书
聚美优品励志广告词
2014/03/14 职场文书
民族学专业求职信
2014/07/28 职场文书
2014年国庆节庆祝建国65周年比赛演讲稿
2014/09/21 职场文书
学校四风问题对照检查材料思想汇报
2014/09/26 职场文书
列车乘务员工作不细心检讨书
2014/10/07 职场文书
党员查摆问题及整改措施
2014/10/10 职场文书
深度学习详解之初试机器学习
2021/04/14 Python
springboot+WebMagic+MyBatis爬虫框架的使用
2021/08/07 Java/Android