Django管理可排序的自定义字段

时间:2013-08-30 23:11:50

标签: django django-admin django-admin-filters

class EventAdmin(admin.ModelAdmin)
    list_display = (..., 'ticket_value')

    def ticket_value(self, inst):
        return normalize(self.value)

我需要在Django管理面板中按我的自定义列“ticket_value”对事件对象进行排序。 有许多带有queryset,annotate,aggregate的示例,但我需要为每个票证值应用normalize函数。

如何在Django admin中对ticket_value列进行排序?

1 个答案:

答案 0 :(得分:1)

你没有。管理屏幕依赖于QuerySet.order_by();它只能执行可以在ORDER BY子句中表示的顺序。相关来源:

https://github.com/django/django/blob/a89c856a7aadc830951342a1fa49c1a1b5ac9156/django/contrib/admin/views/main.py#L387

考虑大型数据集会发生什么 - 为了使分页保持一致,管理员必须为每个请求评估数据库中每个行的规范化函数。