обновить значение с помощью кнопок пользовательских действий (не действий) на странице списка администратора Django? - PullRequest
0 голосов
/ 28 сентября 2018

У меня есть следующая форма изменения в 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("../")

Когда я нажимаю на Makeсмертный открывает пустую форму устройства, как показано ниже.Все, что я хочу, это обновить состояние питания в базе данных и показать сообщение.Затем показывает обновленное значение в форме изменения.

enter image description here

Я следую приведенным ниже инструкциям, но не смог решить проблему https://media.readthedocs.org/pdf/django-admin-cookbook/latest/django-admin-cookbook.pdf#page=21&zoom=100,0,424

...