Администратор Django: как добавить кнопку Сохранить в верхнюю часть списка - PullRequest
0 голосов
/ 31 октября 2018

Когда есть список редактируемых полей, кнопка «Сохранить» появляется внизу в представлении списка администратора Django. (Окружен красной рамкой на картинке). enter image description here

Как добавить в начало ту же кнопку Сохранить? (Ожидаемый результат обведен зеленой рамкой на картинке.)

Для представления изменения объекта Django предлагает простое решение, но, похоже, нет встроенной опции для представления списка.

1 Ответ

0 голосов
/ 31 октября 2018

Это легко сделать с помощью JavaScript.

Сначала нам понадобится функция JS, которая найдет строку кнопки «Сохранить» в нижней части страницы и вставит копию в верхнюю часть. В моем случае это живет в static/common/js/save-buttons-to-list-view-top.js.

'use strict'
var $ = django.jQuery

$(document).ready(function () {
  var saveButtonRow = $('.paginator')[0]
  var resultsDiv = $('#changelist-form > div.results')[0]

  if (saveButtonRow && resultsDiv) {
    $(saveButtonRow).clone().insertBefore(resultsDiv);
  }
})

Этот сценарий необходимо добавить ко всем представлениям списка изменений администратора путем переопределения шаблона change_list.html.

Создать файл templates/admin/change_list.html со следующим содержимым:

{% extends 'admin/change_list.html' %}
{% block extrahead %}
{{ block.super }}
<script type="text/javascript" src="/static/media/common/js/save-buttons-to-list-view-top.js"></script>
{% endblock %}

Чтобы это работало, проверьте, настроены ли параметры шаблона в settings.py:

TEMPLATES = [
    {
        ...
        'DIRS': [os.path.join(BASE_DIR, 'templates'), ],
        'APP_DIRS': True,
        ...
    }
]
...