Django Admin后台模型列表页面如何添加自定义操作按钮


Posted in Python onNovember 11, 2020

你需要添加两个按钮:一个按钮使所有英雄都可以死亡,而另一个按钮使所有英雄永生。由于它会影响所有英雄,而与选择无关,因此这需要一个单独的按钮,而不是操作下拉菜单。

首先,我们要更改HeroAdmin管理模型使用的模板文件,以便我们可以添加两个按钮:

@admin.register(Hero)
class HeroAdmin(admin.ModelAdmin, ExportCsvMixin):
  change_list_template = "entities/heroes_changelist.html"

然后,我们需要覆盖get_urls方法,并在管理模型上添加set_immortal和set_mortal方法。它们将用作两种view视图:

def get_urls(self):
  urls = super().get_urls()
  my_urls = [
    path('immortal/', self.set_immortal),
    path('mortal/', self.set_mortal),
  ]
  return my_urls + urls
def set_immortal(self, request):
  self.model.objects.all().update(is_immortal=True)
  self.message_user(request, "All heroes are now immortal")
  return HttpResponseRedirect("../")
def set_mortal(self, request):
  self.model.objects.all().update(is_immortal=False)
  self.message_user(request, "All heroes are now mortal")
  return HttpResponseRedirect("../")

最后,我们通过扩展admin/change_list.html来创建模板文件entities/heroes_changelist.html:

{% extends 'admin/change_list.html' %}
{% block object-tools %}
  <div>
    <form action="immortal/" method="POST">
      {% csrf_token %}
        <button type="submit">Make Immortal</button>
    </form>
    <form action="mortal/" method="POST">
      {% csrf_token %}
        <button type="submit">Make Mortal</button>
    </form>
  </div>
  <br />
  {{ block.super }}
{% endblock %}

Django Admin后台模型列表页面如何添加自定义操作按钮

在点击页面的make_mortal动作后,英雄全都可以死亡,你会看到如下消息提示。

Django Admin后台模型列表页面如何添加自定义操作按钮

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

Python 相关文章推荐
python实现根据窗口标题调用窗口的方法
Mar 13 Python
使用python实现正则匹配检索远端FTP目录下的文件
Mar 25 Python
讲解Python中for循环下的索引变量的作用域
Apr 15 Python
1 行 Python 代码快速实现 FTP 服务器
Jan 25 Python
python输出100以内的质数与合数实例代码
Jul 08 Python
python图像和办公文档处理总结
May 28 Python
django-初始配置(纯手写)详解
Jul 30 Python
python输入错误后删除的方法
Oct 12 Python
python双端队列原理、实现与使用方法分析
Nov 27 Python
python 通过视频url获取视频的宽高方式
Dec 10 Python
Python更新所有已安装包的操作
Feb 13 Python
python 的topk算法实例
Apr 02 Python
Django启动时找不到mysqlclient问题解决方案
Nov 11 #Python
Python+logging输出到屏幕将log日志写入文件
Nov 11 #Python
通过Django Admin+HttpRunner1.5.6实现简易接口测试平台
Nov 11 #Python
Django自定义YamlField实现过程解析
Nov 11 #Python
Python监听剪切板实现方法代码实例
Nov 11 #Python
如何通过python计算圆周率PI
Nov 11 #Python
python中turtle库的简单使用教程
Nov 11 #Python
You might like
图形数字验证代码
2006/10/09 PHP
PHP+AJAX实现无刷新注册(带用户名实时检测)
2006/12/02 PHP
php下清空字符串中的HTML标签的代码
2010/09/06 PHP
PHP 年龄计算函数(精确到天)
2012/06/07 PHP
php全角字符转换为半角函数
2014/02/07 PHP
PHP SESSION的增加、删除、修改、查看操作
2015/03/20 PHP
PHP内核探索:哈希表碰撞攻击原理
2015/07/31 PHP
php创建无限级树型菜单
2015/11/05 PHP
PHP获取日期对应星期、一周日期、星期开始与结束日期的方法
2018/06/22 PHP
Thinkphp框架使用list_to_tree 实现无限级分类列出所有节点示例
2020/04/04 PHP
thinkphp诸多限制条件下如何getshell详解
2020/12/09 PHP
基于jquery的跟随屏幕滚动代码
2012/07/24 Javascript
JS控制日期显示的小例子
2013/11/23 Javascript
最短的IE判断var ie=!-[1,]分析
2014/05/28 Javascript
jQuery的缓存机制浅析
2014/06/07 Javascript
jQuery选择器querySelector的使用指南
2015/01/23 Javascript
jQuery插件HighCharts绘制2D饼图效果示例【附demo源码下载】
2017/03/21 jQuery
让div运动起来 js实现缓动效果
2017/07/06 Javascript
React Native中Navigator的使用方法示例
2017/10/13 Javascript
vue本地打开build后生成的dist文件夹index.html问题
2019/09/04 Javascript
[50:28]LGD女子学院第三期 DOTA2复仇之魂教学
2013/12/24 DOTA
利用一个简单的例子窥探CPython内核的运行机制
2015/03/30 Python
Python日期的加减等操作的示例
2017/08/15 Python
Python基于win32ui模块创建弹出式菜单示例
2018/05/09 Python
python3爬虫学习之数据存储txt的案例详解
2019/04/24 Python
ERLANG和PYTHON互通实现过程详解
2019/07/05 Python
Python OpenCV读取显示视频的方法示例
2020/02/20 Python
Python使用struct处理二进制(pack和unpack用法)
2020/11/12 Python
THE OUTNET英国官网:国际设计师品牌折扣网站
2016/08/14 全球购物
美国礼品卡商城: Gift Card Mall
2017/08/25 全球购物
美国领先的低折扣旅行网站:Hotwire
2019/01/19 全球购物
创业计划书的写作技巧及要点
2014/01/31 职场文书
运动会开幕式主持词
2014/03/28 职场文书
公司授权委托书范本
2014/09/18 职场文书
85句关于理想的名言警句大全
2019/08/22 职场文书
基于Python绘制子图及子图刻度的变换等的问题
2021/05/23 Python