【发布时间】:2021-08-30 09:42:54
【问题描述】:
我有这个问题:
qs = MyObject.objects.all()
在我的 MyObject 模型中,我有 case_number 字段。它是一个 CharField,值是 int 和 string 的组合,如“123abc”。
我想通过 case_number 字段的 int 部分订购我的查询集。示例:
['34ohkj', '456kKJj', '12jk'] -> ['12jk', '34ohkj', '456kKJj']
我试过了,但它不起作用,因为我无法删除case_number的字符串部分:
qs.annotate(case_number_int=Cast(F('case_number'), IntegerField())).order_by('case_number_int')
任何帮助将不胜感激!
【问题讨论】:
-
不,我收到了这个错误
django.db.utils.ProgrammingError: type "unsigned" does not exist。此外 extra() 已被弃用。 -
尝试查看ticket #28805 的拉取请求。不幸的是它还没有完全完成,否则你的问题会很简单。