Django admin-在列表显示中同时编辑多个值

Django admin-在列表显示中同时编辑多个值,django,admin,Django,Admin,我有大量的项目,并希望能够编辑这些同时选择,而在管理列表视图 下面是如何将操作复选框用于此目的的屏幕截图。因此,如果编辑一个选定项的重要性,则所有选定项的重要性应同时更改 通过应用list\u filter和search\u field,在处理大量项目时,这应该会加快编辑速度。下面是一个如何在javascript中完成此操作的示例: model.py class PlaceName(models.Model): name = models.CharField(max_length=50

我有大量的项目,并希望能够编辑这些同时选择,而在管理列表视图

下面是如何将操作复选框用于此目的的屏幕截图。因此,如果编辑一个选定项的重要性,则所有选定项的重要性应同时更改


通过应用
list\u filter
search\u field
,在处理大量项目时,这应该会加快编辑速度。

下面是一个如何在javascript中完成此操作的示例:

model.py

class PlaceName(models.Model):
    name = models.CharField(max_length=500, db_index=True)
    short_name = models.CharField(max_length=100, null=True, blank=True)
    type = models.ForeignKey(PlaceType, to_field='code', null=False, blank=False, on_delete=models.PROTECT)
    area = models.CharField(max_length=100, db_index=True)
    lat = models.DecimalField(max_digits=9, decimal_places=6)
    lon = models.DecimalField(max_digits=9, decimal_places=6)
    hasl = models.IntegerField(help_text='Height above sea level')
    importance = models.IntegerField(db_index=True)
    place_id = models.CharField(max_length=100, unique=True)
管理员

class PlaceNameAdmin(admin.ModelAdmin):
    list_display = ('name', 'importance', 'type', 'area', 'hasl', )
    list_filter = ('area', 'type', )
    readonly_fields = ('name', 'short_name', 'type', 'area',  'lat', 'lon', 'hasl', 'place_id')
    search_fields = ('name', 'importance', 'hasl')
    list_editable = ('importance',)

    class Media:
        js = ('multi_line_list_edit.js',)
静态/多行列表编辑.js

(function($) {
    var value_changed = function(jQel) {
        if (jQel.parent().siblings('.action-checkbox').find(':checkbox:checked').length) {
            var value = jQel.val();
            $('#result_list tr').each(function () {
                if ($(this).find(':checkbox:checked').length)
                    $(this).find('td.field-importance input').val(value);

            });
        }
    };

    $(document).ready(function () {
        $('#result_list td.field-importance input').change(function () {
            value_changed($(this));
        });
        $('#result_list td.field-importance input').keyup(function () {
            value_changed($(this));
        });
    });
})(django.jQuery);
您仍然需要单击Save按钮,但通过添加更多javascript,只需按Enter键即可保存更改