为属性字段创建别名,以在django查询集中使用

时间:2015-10-17 14:11:09

标签: python django

在Django中,如何提供可用于操作查询集的属性字段名称 别名

后台:我有一个查询集,其中底层模型有一个名为" submitted_on"的自动生成时间字段。我想在这个时间字段中使用别名(即" date")。 为什么?因为我将此查询集与另一个(使用相同的基础模型)连接,然后order_by('-date')。毋庸置疑,后一个qset已经有一个“约会”日期'属性(通过 annotate()附加)。

我如何制作一个' date'前一个查询集的别名?目前,我正在做一些我觉得效率低下的问题:qset1 = qset1.annotate(date=Max('submitted_on'))

我正在使用 Django 1.5 Python 2.7

2 个答案:

答案 0 :(得分:0)

即使你能做到这一点,它也无助于解决你的终极问题。您不能对来自不同模型的连接查询集使用order_by;这可能是有效的,因为它是请求数据库对查询执行ORDER BY。

答案 1 :(得分:0)

qset1 = qset1.annotate(date=Max('submitted_on'))似乎是我现在最接近的。这个,或使用exclude()。如果我得到更好的解决方案,我会更新。当然,欢迎来自SO的其他专家提出他们自己的答案。