【发布时间】:2020-02-21 12:14:43
【问题描述】:
现在已经在网上搜索了几个小时以寻找解决方案,但没有什么完全符合我的要求。
我有一个模型(简化):
class SimpleModel(Model):
name = CharField('Name', unique=True)
date = DateField()
amount = FloatField()
我有两个约会; date_one 和 date_two。
我想要一个查询集,其中模型中的每个名称都有一行,每一行都显示:
{'name': name, 'date_one': date_one, 'date_two': date_two, 'amount_one': amount_one, 'amount_two': amount_two, 'change': amount_two - amount_one}
原因是我希望能够在单个查询集上使用排序或过滤器来找到 amount_one、amount_two 和 change 的排名。
我知道我可以从两个单独的查询集创建一个字典列表,然后对其进行排序并从索引值中获取排名...
但也许我觉得应该有一个使用更快的查询集的数据库解决方案。
union 看起来很有希望,但之后你不能执行一些简单的操作,比如filter
我想我也许可以将名称拆分为它自己的模型并生成带有相关字段的查询集,但我不想在这个阶段更改架构。另外,我只能访问 sqlite。
感谢任何帮助!
【问题讨论】: