У меня есть следующая форма изменения в 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://i.stack.imgur.com/WYITy.jpg)
Я следую приведенным ниже инструкциям, но не смог решить проблему https://media.readthedocs.org/pdf/django-admin-cookbook/latest/django-admin-cookbook.pdf#page=21&zoom=100,0,424