在Django中,如何提供可用于操作查询集的属性字段名称 别名 ?
后台:我有一个查询集,其中底层模型有一个名为" submitted_on"的自动生成时间字段。我想在这个时间字段中使用别名(即" date")。 为什么?因为我将此查询集与另一个(使用相同的基础模型)连接,然后order_by('-date')
。毋庸置疑,后一个qset已经有一个“约会”日期'属性(通过 annotate()附加)。
我如何制作一个' date'前一个查询集的别名?目前,我正在做一些我觉得效率低下的问题:qset1 = qset1.annotate(date=Max('submitted_on'))
我正在使用 Django 1.5 和 Python 2.7 。
答案 0 :(得分:0)
即使你能做到这一点,它也无助于解决你的终极问题。您不能对来自不同模型的连接查询集使用order_by
;这可能是有效的,因为它是请求数据库对查询执行ORDER BY。
答案 1 :(得分:0)
qset1 = qset1.annotate(date=Max('submitted_on'))
似乎是我现在最接近的。这个,或使用exclude()
。如果我得到更好的解决方案,我会更新。当然,欢迎来自SO的其他专家提出他们自己的答案。