我想通过charfield中的数字来定购QuerySet。 我有这样的代码:如何在包含数字的charfield中在Django中订购QuerySet?
MyTable.objects.all().order_by('my_char_field')
有 “my_char_field” 的一些例子:
"ver3", "ver10", "x5.1 (1)", "ver4", "x5.1 (2)"
与上面的代码顺序的结果是:
"ver10", "ver3", "ver4", "x5.1 (1)", "x5.1 (2)"
但订单我想要的是:
"ver3", "ver4", "ver10", "x5.1 (1)", "x5.1 (2)"
如何获得自然顺序?
是否总是与'ver'开始? – AKS
这些是唯一的变化吗?这个char字段是否总是以一系列数字结尾并以字母序列开头?该版本内部是否有点'ver 2.1.2'? – AKS
@AKS版本内部可能有一个点,不同的开始和结束 – MouTio