Django admin:格式化列表中的字段,但保持可排序?

Sam*_*Sam 4 django-models django-admin

我在数据库中保留了"size","width","height"等数字字段.现在,我会在更改列表中显示单位,如"KiB"或"像素".这可以通过向list_display添加诸如"size_formatted"等可调用对象来轻松实现.但是,这些不再是可排序的.

有没有解决这个限制的方法?

Pyd*_* UA 9

在这里阅读 - 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'
Run Code Online (Sandbox Code Playgroud)