Django admin,将操作显示为按钮

arr*_*rt_ 1 django django-templates django-admin python-3.x

在 Django admin 中,有一个用于操作的下拉列表。

我想要实现的是摆脱下拉列表和“开始”按钮,而是将我的操作显示为按钮。

怎么做到呢?提前致谢。

Ano*_*oop 7

action_buttons.js在静态目录中创建一个 js 文件

(function ($) {

    function fix_actions() {
        var container = $('div.actions');

        if (container.find('option').length < 10) {
            container.find('label, button').hide();

            var buttons = $('<div></div>')
                .prependTo(container)
                .css('display', 'inline')
                .addClass('class', 'action-buttons');

            container.find('option:gt(0)').each(function () {
                $('<button>')
                    .appendTo(buttons)
                    .attr('name', this.value)
                    .addClass('button')
                    .text(this.text)
                    .click(function () {
                        container.find('select')
                            .find(':selected').attr('selected', '').end()
                            .find('[value=' + this.name + ']').attr('selected', 'selected');
                        $('#changelist-form button[name="index"]').click();
                    });
            });
        }
    };

    $(function () {
        fix_actions();
    });
})(django.jQuery);
Run Code Online (Sandbox Code Playgroud)

将上面的代码复制到js文件中

在你的 admin.py 下 admin 类添加

class Media:
    js = ('path/to/action_buttons.js', )
Run Code Online (Sandbox Code Playgroud)