使用“自定义操作按钮”(而非操作)将值更新到Django Admin列表页面?

时间:2018-09-27 23:06:45

标签: django django-views

我在templates\admin\pages\Device中有以下更改表格 这将创建一个添加按钮"Make Immortal"

{% extends "admin/change_form.html" %}
{% load i18n %}
{% block object-tools-items %}

<div  >
<form action="." method="POST">
{% csrf_token %}
<button type="submit">Make Immortal</button>
</form>
</div>
<br />
<br />
     {{ block.super }}

{% endblock %}

我的管理页面如下:

#app/admin.py 
class DeviceAdmin(admin.ModelAdmin):
    def get_urls(self):
        urls = super().get_urls()
        my_urls = [path('device/', self.set_immortal),
                    path('device/', self.set_mortal),
                    ]
        return my_urls + urls

    def set_immortal(self, request):
        self.model.objects.all().update(power=True)
        self.message_user(request, "All devices are up")
        return HttpResponseRedirect("../")

    def set_mortal(self, request):
        self.model.objects.all().update(power=False)
        self.message_user(request, "All devices are off")
        return HttpResponseRedirect("../")

当我单击“制作凡人”时,它将打开一个空设备表单,如下所示。 我想要的只是更新数据库中的电源状态并显示消息。然后在更改表单中显示更新的值。

enter image description here

我正在关注以下教程,但无法解决问题 https://media.readthedocs.org/pdf/django-admin-cookbook/latest/django-admin-cookbook.pdf#page=21&zoom=100,0,424

0 个答案:

没有答案