You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Django Admin面板中按A-Z顺序排列分类项?

企业目录系统分类排序问题

我搭建了一个企业目录系统,添加新企业时发现分类列表显示无序,希望将分类按A-Z排序。已在Category模型的Meta类中配置ordering = ['name'],但设置未生效。

相关代码如下:

class Category(models.Model):
    name = models.CharField(max_length=100)
    
    class Meta:
        ordering = ['name']

问题截图:
分类列表无序显示

排查与解决方法

  • 检查视图查询逻辑:如果视图中对Category的查询手动添加了order_by()参数,会覆盖模型Meta类的排序规则,需移除多余的排序参数,或确保使用order_by('name')。
  • 验证模型排序是否生效:在Django shell中执行print(Category.objects.all().query),查看生成的SQL是否包含ORDER BY name ASC,若没有则检查模型是否被正确加载。
  • 清理缓存并重启服务:Django可能缓存了旧的查询结果,重启服务或清理缓存后重新测试。
  • 检查数据库排序规则:若分类名称含特殊字符,确认数据库表的字符集排序规则是否支持A-Z排序,可将表的排序规则设置为utf8mb4_general_ci(大小写不敏感)或utf8mb4_bin(精确大小写)。

内容的提问来源于stack exchange,提问作者Prusa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 07:20:41