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和C语言混合编程实例
Jun 04 Python
python中元类用法实例
Oct 10 Python
python实现飞机大战微信小游戏
Mar 21 Python
Python代码打开本地.mp4格式文件的方法
Jan 03 Python
Python饼状图的绘制实例
Jan 15 Python
详解Python打包分发工具setuptools
Aug 05 Python
python numpy中cumsum的用法详解
Oct 17 Python
Python语言异常处理测试过程解析
Jan 08 Python
tensorflow对图像进行拼接的例子
Feb 05 Python
Python定义函数实现累计求和操作
May 03 Python
python三引号如何输入
Jul 06 Python
将Python代码打包成.exe可执行文件的完整步骤
May 12 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语法(3)
2006/10/09 PHP
一个简洁的PHP可逆加密函数(分享)
2013/06/06 PHP
php实现查询百度google收录情况(示例代码)
2013/08/02 PHP
老生常谈php中传统验证与thinkphp框架(必看篇)
2017/06/10 PHP
使用tp框架和SQL语句查询数据表中的某字段包含某值
2019/10/18 PHP
IE不支持getElementsByClassName最终完美解决方案
2012/12/17 Javascript
js实现带搜索功能的下拉框实时搜索实时匹配
2013/11/05 Javascript
9款2014最热门jQuery实用特效推荐
2014/12/07 Javascript
JavaScript获取文本框内选中文本的方法
2015/02/20 Javascript
JavaScript中switch语句的用法详解
2015/06/03 Javascript
JavaScript中的cacheStorage使用详解
2015/07/29 Javascript
JS实现的通用表单验证插件完整实例
2015/08/20 Javascript
Nodejs学习item【入门手上】
2016/05/05 NodeJs
React如何将组件渲染到指定DOM节点详解
2017/09/08 Javascript
ExtJs整合Echarts的示例代码
2018/02/27 Javascript
js统计页面上每个标签的数量实例代码
2018/05/29 Javascript
js实现限定范围拖拽的示例
2020/10/26 Javascript
Python创建模块及模块导入的方法
2015/05/27 Python
python生成器表达式和列表解析
2016/03/10 Python
python 垃圾收集机制的实例详解
2017/08/20 Python
python中找出numpy array数组的最值及其索引方法
2018/04/17 Python
pandas 实现将重复表格去重,并重新转换为表格的方法
2018/04/18 Python
Python实现处理逆波兰表达式示例
2018/07/30 Python
django settings.py 配置文件及介绍
2019/07/15 Python
Python使用configparser库读取配置文件
2020/02/22 Python
python requests包的request()函数中的参数-params和data的区别介绍
2020/05/05 Python
Selenium及python实现滚动操作多种方法
2020/07/21 Python
德国帽子专家:Hutshopping
2019/11/03 全球购物
一道Delphi面试题
2016/10/28 面试题
中层竞聘演讲稿
2014/01/09 职场文书
自荐信格式简述
2014/01/25 职场文书
2014机关党员干部“正风肃纪”思想汇报
2014/09/15 职场文书
代办社保委托书范文
2014/10/06 职场文书
劳动保障个人工作总结
2015/03/04 职场文书
2015质检员个人年终工作总结
2015/10/23 职场文书
三严三实·严以律己心得体会
2016/01/13 职场文书