Django QuerySet - 多个顺序当每个记录有一个字段时

时间:2014-06-04 13:52:40

标签: database django django-queryset

我正在访问一个API,其中字段的数量可以随时更改,但我必须将数据存储并显示为表格。因此,API中的每条记录都存储为每个字段的单个记录。我的问题是我无法弄清楚如何一次按多列排序。在排序之前将所有数据放入2D数组(列表列表)不是一个可行的选择,因为记录的数量可能太大而无法在内存中保存。

我已经汇总了一个简单的例子来解释。如果有人知道如何克服这个问题,或者我如何重新设计我的方法,我将非常感激。

| record_id    | field       | data        |
| 1            | x           | 2           |
| 1            | y           | 1           |
| 1            | z           | 3           |
| 2            | x           | 30          |
| 2            | y           | 42          |
| 2            | z           | 7           |
| 3            | x           | 53          |
| 3            | y           | 2           |
| 3            | z           | 7           |

如果按字段排序' z'然后' x' (均为升序),记录顺序为1,2,3

如果按字段排序' z'然后' y' (均为升序),记录顺序为1,3,2

我在django中使用模型来存储,我使用QuerySets来检索数据。我无法控制我最初访问数据的API或数据库。

1 个答案:

答案 0 :(得分:0)

经过大量的研究后,我意识到我正在解决这个问题 - 我现在正在postgres和django-hstore中使用hstore字段来利用它,以实现无模式方法。我现在每个原始记录有一行,我可以在'额外'方法中转换必填字段后命令。