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

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

我需要在 Django 管理面板中按我的自定义列“ticket_value”对事件对象进行排序。有很多带有查询集、注释、聚合的示例,但我需要为每个票值应用规范化函数。

如何在 Django admin 中使 ticket_value 列可排序?

4

1 回答 1

1

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

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

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

于 2013-08-31T01:58:39.263 回答