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 相关文章推荐
Python2.x中str与unicode相关问题的解决方法
Mar 30 Python
在Python中处理字符串之ljust()方法的使用简介
May 19 Python
Python编程中用close()方法关闭文件的教程
May 24 Python
python 阶乘累加和的实例
Feb 01 Python
django框架防止XSS注入的方法分析
Jun 21 Python
pyinstaller打包单个exe后无法执行错误的解决方法
Jun 21 Python
python实现图片中文字分割效果
Jul 22 Python
Python在Matplotlib图中显示中文字体的操作方法
Jul 29 Python
python中单下划线(_)和双下划线(__)的特殊用法
Aug 29 Python
Python requests模块session代码实例
Apr 14 Python
OpenCV+python实现实时目标检测功能
Jun 24 Python
Win10环境中如何实现python2和python3并存
Jul 20 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
PHP5.3的垃圾回收机制(动态存储分配方案)深入理解
2012/12/10 PHP
PHP SPL使用方法和他的威力
2013/11/12 PHP
PHP判断指定时间段的2个方法
2014/03/14 PHP
Yii使用find findAll查找出指定字段的实现方法
2014/09/05 PHP
php实现中文字符截取防乱码方法汇总
2015/04/29 PHP
php使用Jpgraph绘制复杂X-Y坐标图的方法
2015/06/10 PHP
thinkPHP查询方式小结
2016/01/09 PHP
PHP实现图的邻接矩阵表示及几种简单遍历算法分析
2017/11/24 PHP
php实现统计二进制中1的个数算法示例
2018/01/23 PHP
跨浏览器的设置innerHTML方法
2006/09/18 Javascript
vs2003 js文件编码问题的解决方法
2010/03/20 Javascript
js post方式传递提交的实现代码
2010/05/31 Javascript
javascript各浏览器中option元素的表现差异
2011/04/07 Javascript
基于jquery实现一张图片点击鼠标放大再点缩小
2013/09/29 Javascript
js实现非常棒的弹出div
2016/10/06 Javascript
详解为Angular.js内置$http服务添加拦截器的方法
2016/12/20 Javascript
深入理解AngularJS中的ng-bind-html指令
2017/03/27 Javascript
深入浅出es6模板字符串
2017/08/26 Javascript
JS打印彩色菱形的实例代码
2018/08/15 Javascript
Vue使用zTree插件封装树组件操作示例
2019/04/25 Javascript
JS学习笔记之原型链和利用原型实现继承详解
2019/05/29 Javascript
electron+vue实现div contenteditable截图功能
2020/01/07 Javascript
JS+JQuery实现无缝连接轮播图
2020/12/30 jQuery
Python中使用不同编码读写txt文件详解
2015/05/28 Python
python实现web方式logview的方法
2015/08/10 Python
Python实现重建二叉树的三种方法详解
2018/06/23 Python
Python面向对象类的继承实例详解
2018/06/27 Python
Python爬虫框架scrapy实现的文件下载功能示例
2018/08/04 Python
浅析使用Python搭建http服务器
2019/10/27 Python
python获取系统内存占用信息的实例方法
2020/07/17 Python
python各种excel写入方式的速度对比
2020/11/10 Python
餐厅考勤管理制度
2014/01/28 职场文书
建设单位项目负责人任命书
2014/06/06 职场文书
800字作文之大雪
2019/12/04 职场文书
Python爬虫之用Xpath获取关键标签实现自动评论盖楼抽奖(二)
2021/06/07 Python
Python+Selenium实现读取网易邮箱验证码
2022/03/13 Python