Администратор Django: форматировать поля в списке, но сохранять сортировку? - PullRequest
4 голосов
/ 02 декабря 2009

Я храню числовые поля, такие как "размер", "ширина", "высота" в моей базе данных. Теперь я бы прикрепил к ним единицы измерения, такие как «КиБ» или «Пиксели», при отображении их в списке изменений. Это может быть легко достигнуто путем добавления вызываемых элементов, таких как «size_formatted» и т. Д. В list_display. Тем не менее, они больше не сортируются.

Есть ли способ обойти это ограничение?

1 Ответ

9 голосов
/ 23 декабря 2009

Читать здесь - ModelAdmin.list_display (много читать, чтобы добраться до сути;))

вам нужно добавить атрибут admin_order_field к вашей функции

class YourAdminCLass(admin.ModelAdmin)
   [...]
   def size_formatted(self, obj):
          return "whatever you need"
   size_formatted.admin_order_field = 'size'
...