django 按钮的样式_Django Admin后台模型列表页面如何添加自定义操作按钮

本文介绍了如何在Django Admin后台模型列表页面添加自定义操作按钮,包括设置英雄永生和死亡的功能。通过修改HeroAdmin管理模型的模板文件,覆盖get_urls方法并添加set_immortal和set_mortal方法,以及创建自定义模板文件来实现这两个操作。
摘要由CSDN通过智能技术生成

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

首先,我们要更改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 %}

{% csrf_token %}

Make Immortal

{% csrf_token %}

Make Mortal

{{ block.super }}

{% endblock %}

aed143b141ffbd232e846434edc15de8.png

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

96453b00e8e62ce057a18c85e52de805.png

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值