【问题标题】:Django admin: how to add Save button to the top of list viewDjango admin:如何将保存按钮添加到列表视图的顶部
【发布时间】:2019-04-04 01:32:02
【问题描述】:

当有列表可编辑字段时,保存按钮会出现在 Django 管理列表视图的底部。 (图中用红框包围)。

如何将相同的保存按钮也添加到顶部? (预期结果在图中用绿色框包围。)

对于对象更改视图,Django 提供了一个简单的解决方案,但列表视图似乎没有内置选项。

【问题讨论】:

    标签: django django-admin


    【解决方案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,
            ...
        }
    ]
    

    【讨论】:

      【解决方案2】:

      仅供参考。有选项 ModelAdmin.save_on_top (docs)

      【讨论】:

      • 我知道,我迟到了,但是这个选项在更改列表页面中不起作用。
      猜你喜欢
      • 2013-01-07
      • 1970-01-01
      • 2021-07-31
      • 2014-01-06
      • 1970-01-01
      • 1970-01-01
      • 2014-01-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多