我面临的情况是,我必须通过用于存储街道地址的 CharField 输出相当大的对象列表。
我的问题是,显然数据是按 ASCII 代码排序的,因为它是 Charfield,具有可预测的结果..它像这样对数字进行排序;
1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2, 20, 21....
现在显而易见的步骤是将 Charfield 更改为正确的字段类型(例如 IntegerField),但是它无法工作,因为某些地址可能有公寓..如“128A”。
我真的不知道如何正确订购这个..
如果您确定该字段中只有整数,您可以通过以下方式让数据库将其转换为整数extra
方法,并按以下顺序排序:
MyModel.objects.extra(
select={'myinteger': 'CAST(mycharfield AS INTEGER)'}
).order_by('myinteger')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)