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 相关文章推荐
用pywin32实现windows模拟鼠标及键盘动作
Apr 22 Python
Python中声明只包含一个元素的元组数据方法
Aug 25 Python
用Python将动态GIF图片倒放播放的方法
Nov 02 Python
浅谈python内置变量-reversed(seq)
Jun 21 Python
python实现报表自动化详解
Nov 16 Python
Python cookbook(数据结构与算法)让字典保持有序的方法
Feb 18 Python
基于python list对象中嵌套元组使用sort时的排序方法
Apr 18 Python
python实现简单多人聊天室
Dec 11 Python
python 实现图片旋转 上下左右 180度旋转的示例
Jan 24 Python
在pycharm下设置自己的个性模版方法
Jul 15 Python
Python2.7:使用Pyhook模块监听鼠标键盘事件-获取坐标实例
Mar 14 Python
python opencv图像处理(素描、怀旧、光照、流年、滤镜 原理及实现)
Dec 10 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中关于普通表单多文件上传的处理方法
2011/03/25 PHP
php中判断字符串是否全是中文或含有中文的实现代码
2011/09/16 PHP
PHP随机生成随机个数的字母组合示例
2014/01/14 PHP
PHP实现UTF-8文件BOM自动检测与移除实例
2014/11/05 PHP
PHP基于redis计数器类定义与用法示例
2018/02/08 PHP
Extjs学习笔记之六 面版
2010/01/08 Javascript
json数据的列循环示例
2013/09/06 Javascript
Javascript获取随机数的实现方法
2016/06/22 Javascript
js实现增加数字显示的环形进度条效果
2017/02/05 Javascript
详解vue与后端数据交互(ajax):vue-resource
2017/03/16 Javascript
基于JavaScript实现选项卡效果
2017/07/21 Javascript
浅谈Vue.js中ref ($refs)用法举例总结
2017/12/19 Javascript
微信小程序数字滚动插件使用详解
2018/02/02 Javascript
JavaScript累加、迭代、穷举、递归等常用算法实例小结
2018/05/08 Javascript
JS与SQL方式随机生成高强度密码示例
2018/12/29 Javascript
JS实现指定区域的全屏显示功能示例
2019/04/25 Javascript
记录一次开发微信网页分享的步骤
2019/05/07 Javascript
js实现时分秒倒计时
2019/12/03 Javascript
webpack.DefinePlugin与cross-env区别详解
2020/02/23 Javascript
Python中防止sql注入的方法详解
2017/02/25 Python
Python requests发送post请求的一些疑点
2018/05/20 Python
Python matplotlib修改默认字体的操作
2020/03/05 Python
Python常用base64 md5 aes des crc32加密解密方法汇总
2020/11/06 Python
Python实现迪杰斯特拉算法并生成最短路径的示例代码
2020/12/01 Python
Html+Css+Jquery实现左侧滑动拉伸导航菜单栏的示例代码
2020/03/17 HTML / CSS
印尼穆斯林时尚购物网站:Hijabenka
2016/12/10 全球购物
乌克兰在线药房:Аптека24
2019/10/30 全球购物
2019年c语言经典面试题目
2016/08/17 面试题
优秀毕业生自荐信
2014/06/10 职场文书
文秘班元旦晚会活动策划方案
2014/08/28 职场文书
2014年最新版离婚协议书范本
2014/11/25 职场文书
员工工作能力评语
2014/12/31 职场文书
乔迁之喜答谢词
2015/01/05 职场文书
2015年小学实验室工作总结
2015/07/28 职场文书
委托开发合同书(标准版)
2019/08/07 职场文书
《极主夫道》真人电影正式预告 定档6月3日上映
2022/04/05 日漫