当存在列表可编辑字段时,“保存”按钮将显示在Django管理员列表视图的底部。 (在图片中用红色框围住)。
如何在顶部也添加相同的“保存”按钮? (预期结果在图片中被绿色框包围。)
对于对象更改视图,Django提供了一个简单的解决方案,但列表视图似乎没有内置选项。
答案 0 :(得分:1)
这可以通过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,
...
}
]
答案 1 :(得分:-1)
仅供参考。有一个选项ModelAdmin.save_on_top(docs)