首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Django管理站点列标题按值排序,而不是按字母排序?

Django管理站点列标题按值排序,而不是按字母排序?
EN

Stack Overflow用户
提问于 2017-09-09 17:05:19
回答 2查看 538关注 0票数 0

当单击列标题时,如何使Django管理站点严格按字母顺序排序?下面的column2是一个外键。

代码语言:javascript
代码运行次数:0
运行
复制
MyAdmin(admin.ModelAdmin):
    list_display = ('column1', 'column2')

在这里,当单击column2头时,应该按字母顺序对更改列表排序,但不是吗?

代码语言:javascript
代码运行次数:0
运行
复制
column2
b
a
c

or 

column2
c
a
b

是输出。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-09-09 18:41:48

你提供的信息(目前为止)还不足以给你一个直截了当的答案。然而,根据你所说的,我怀疑你所面临的问题如下:

Django按字母顺序(ascdesc,取决于当前状态)对"Strings“进行排序,但是当列是外键时,它按id进行排序,即使它显示的是模型上的__str__(self):方法指定的”字符串“。

由于排序是在数据库中完成的,据我所知,如果不编辑queryset,您将无法完成排序(请检查这个答案,以看到一个示例:显示字段,它没有DB字段,也没有可注释的)。

票数 1
EN

Stack Overflow用户

发布于 2017-09-09 18:42:26

这应该是默认行为。也许您以前单击过另一个列标题,然后它将column2添加为第二个排序参数?您可以检查admin并查看所给出的排序参数(如果您不知道如何理解该URL,也可以将其粘贴在这里)。

我可以想到的另一个版本是,行值实际上不是abc,而是一些默认排序不正确的unicode (通常a, b, ä通常是默认排序的a, ä, b,而实际上在爱沙尼亚字母中,第一个排序是正确的)。要解决这个问题,请查看Django模型上的排序选项

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46133067

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档