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实现统计代码行数的方法
May 22 Python
python实现的用于搜索文件并进行内容替换的类实例
Jun 28 Python
对Python正则匹配IP、Url、Mail的方法详解
Dec 25 Python
学习python的前途 python挣钱
Feb 27 Python
python and or用法详解
Jun 26 Python
在Python函数中输入任意数量参数的实例
Jul 16 Python
pytorch实现从本地加载 .pth 格式模型
Feb 14 Python
python 画条形图(柱状图)实例
Apr 24 Python
Python钉钉报警及Zabbix集成钉钉报警的示例代码
Aug 17 Python
Python识别验证码的实现示例
Sep 30 Python
PyCharm 光标变成黑块的解决方式
Feb 06 Python
学会Python数据可视化必须尝试这7个库
Jun 16 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
php下MYSQL limit的优化
2008/01/10 PHP
深入理解:单一入口、MVC、ORM、CURD、ActiveRecord概念
2013/06/06 PHP
深入php self与$this的详解
2013/06/08 PHP
destoon后台网站设置变成空白的解决方法
2014/06/21 PHP
分享下php5类中三种数据类型的区别
2015/01/26 PHP
thinkphp框架类库扩展操作示例
2019/11/26 PHP
javascript 页面划词搜索JS
2009/09/28 Javascript
JS实现简单易用的手机端浮动窗口显示效果
2016/09/07 Javascript
详解ES6中的let命令
2020/04/05 Javascript
详解nodejs 文本操作模块-fs模块(五)
2016/12/23 NodeJs
Vue分页组件实例代码
2017/04/17 Javascript
详解vue-cli之webpack3构建全面提速优化
2017/12/25 Javascript
AngularJS select加载数据选中默认值的方法
2018/02/28 Javascript
探秘vue-rx 2.0(推荐)
2018/09/21 Javascript
小白教程|一小时上手最流行的前端框架vue(推荐)
2019/04/10 Javascript
element-ui组件中input等的change事件中传递自定义参数
2019/05/22 Javascript
vue中如何实现后台管理系统的权限控制的方法步骤
2019/09/05 Javascript
微信小程序 scroll-view的使用案例代码详解
2020/06/11 Javascript
ptyhon实现sitemap生成示例
2014/03/30 Python
用Python分析3天破10亿的《我不是药神》到底神在哪?
2018/07/12 Python
Python如何实现动态数组
2019/11/02 Python
tensorflow mnist 数据加载实现并画图效果
2020/02/05 Python
python常用运维脚本实例小结
2020/02/14 Python
实现strstr功能,即在父串中寻找子串首次出现的位置
2016/08/05 面试题
党校个人自我鉴定范文
2014/03/28 职场文书
2014年仓管员工作总结
2014/11/18 职场文书
部门2015年度工作总结
2015/04/29 职场文书
办公室年度工作总结2015
2015/05/21 职场文书
幼儿园新学期开学寄语
2015/05/27 职场文书
委托收款证明
2015/06/23 职场文书
《颐和园》教学反思
2016/02/19 职场文书
Jsonp劫持学习
2021/04/01 PHP
jquery插件实现代码雨特效
2021/04/24 jQuery
有趣的二维码:使用MyQR和qrcode来制作二维码
2021/05/10 Python
python 中的@运算符使用
2021/05/26 Python
Python可视化学习之seaborn绘制矩阵图详解
2022/02/24 Python