Django admin change_list: 更改多个列名

Django admin change_list: Change multiple column names

我想更改 list_display 中的多个列名。您可以使用 short_description 的属性函数来执行此操作,如下所示:Django admin listview Customize Column Name。但是,如果我想更改大约 25 列 headers,这听起来不太实用。

有没有更高效的方法?

第一个可行的方法是在 admin init 方法中生成这 25 个属性函数。但是现在使用映射字典和 JavaScript 中的 for 循环实现了一种更简单的方法:

function shorten_column_headers() {
  var headers = {
    'list_display_field_name_1': 'shortened description_1',
    'list_display_field_name_2': 'shortened description_2',
    ...
  }
  for (var field in headers) {
    var $col = $('th.column-' + field + '> div.text > a:nth-child(1)');
    $col.text(headers[field]);
  }
}

$(document).ready(function() {
  shorten_column_headers();
});