如何按数字顺序排序Django QuerySet字符串属性?

3 投票
1 回答
2382 浏览
提问于 2025-04-16 21:14

我有一组查询结果(QuerySet),我想按照数字的顺序来排列它们。问题是这些数据是以字符串的形式存储的。我知道怎么在SQL或者列表中做到这一点,但在查询集中我不知道该怎么做。这种情况真的能解决吗?

1 个回答

4

你可能需要使用Django的extra功能来解决这个问题。也许可以这样做:

ordered = (qs.extra(select={"order_column": "CONVERT(column, INTEGER)"})
           .order_by("order_column"))

(假设你在使用MySQL数据库)

撰写回答