Для изменения того, как и что отображается в представлении списка изменений, можно использовать list_display
параметр ModelAdmin
.
Обратите внимание, столбцы даныв list_display
, которые не являются реальными полями базы данных, нельзя использовать для сортировки, поэтому необходимо дать администратору Django подсказку о том, какое поле базы данных фактически использовать для сортировки.
Это делается путем установки admin_order_field
например, атрибут callable, используемый для переноса некоторого значения в HTML.
Пример из документации Django для красочных полей:
class Person(models.Model):
first_name = models.CharField(max_length=50)
color_code = models.CharField(max_length=6)
def colored_first_name(self):
return '<span style="color: #%s;">%s</span>' % (
self.color_code, self.first_name)
colored_first_name.allow_tags = True
colored_first_name.admin_order_field = 'first_name'
class PersonAdmin(admin.ModelAdmin):
list_display = ('first_name', 'colored_first_name')
Надеюсь, что это поможет.