gpt4 book ai didi

django - 如何关闭 Django-admin 表中的列排序或指定哪些列可排序?

转载 作者:行者123 更新时间:2023-12-01 10:00:14 28 4
gpt4 key购买 nike

是否有一种简单的方法可以关闭 django 管理中某些/所有列的可排序性和/或指定哪些列是可排序的?

我知道我可以通过 javascript 手动禁用排序,但这有点 hacky,我希望有更好的或内置的方式。

我正在尝试实现与此类似的管理列表的拖放排序: http://djangosnippets.org/snippets/2870/ ,但如果表按位置列以外的排序,则拖放排序没有意义。我这样做的表永远不会是一个大表,因此用户没有理由需要按位置列以外的其他方式排序,并且允许它按另一列排序只会增加困惑。

最佳答案

我不认为有一种优雅的方式来做到这一点。

您可以在后端关闭它,方法是使用自定义 ChangeList 并覆盖 get_ordering_field 方法为您不想排序的字段返回 None 。我还没有测试过,但看起来如果在该字段上排序的请求最终出现在请求中,管理员就会忽略它们。然后,您可以覆盖呈现表标题的 change_list_results.html 模板或使用一些 JS 来删除 CSS/Javascript 部分。

或者,您可以在您的模型或您的管理类上创建隐藏您不想排序的列的方法,不设置它们的 admin_order_field 值,并且只使用 list_display 中的那些。这不需要更改太多的内置管理员,但这有点荒谬。

关于django - 如何关闭 Django-admin 表中的列排序或指定哪些列可排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17244351/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com