Django 如何对查询筛选器的结果排序?

Django 如何对查询筛选器的结果排序?,django,django-queryset,Django,Django Queryset,我的视图中有一行代码,允许我按日期显示一组项目(我还颠倒了顺序,以便首先显示最近的项目): 工作正常,但是,当我用过滤器连接order\u时,代码 currentsources = Current.objects.filter(source__exact='bbc').order_by('date_added') 为什么这不起作用?语法可能不好,或者我只是不理解这应该如何工作?如果没有当前对象的源代码为“bbc”,那么您当然会得到一个空的结果集。这就是你说的“不工作”的意思吗?如果没有,请张贴

我的视图中有一行代码,允许我按日期显示一组项目(我还颠倒了顺序,以便首先显示最近的项目):

工作正常,但是,当我用过滤器连接
order\u时,
代码

currentsources = Current.objects.filter(source__exact='bbc').order_by('date_added')

为什么这不起作用?语法可能不好,或者我只是不理解这应该如何工作?

如果没有
当前
对象的
源代码为“bbc”,那么您当然会得到一个空的结果集。这就是你说的“不工作”的意思吗?如果没有,请张贴你得到的结果

更新:还有一件事要尝试:启动

manage.py shell
然后在shell中,评估给出问题的queryset

currentsources = Current.objects.filter(source__exact='bbc').order_by('date_added')
然后,执行以下操作:

from django.db.import connection
connection.queries

这将显示为queryset执行的原始SQL。这应该有助于了解这个问题。

我在您的查询中注意到一件事:如果您试图颠倒顺序,以便先显示最近的日期,您将使用以下语法:

currentlinks=Current.objects.order_by('-date_added'))

字段前面的减号颠倒顺序。它大致相当于SQL中的以下语法:

从当前链接中选择*按日期订购添加说明


如果在过滤器()之后链接订单,则订单_by()应该有效,前提是过滤器()有效。

什么不起作用?语法看起来是正确的。它是否给出了错误,是否生成了错误的数据,是否得到了任何东西?嗨,Vinay,它返回了对象,但它们不是按日期排序的。事实上,我不知道它们是如何排序的——看起来是随机的(尽管我肯定不是随机的。)那么,您当前的
模型的
date\u added
属性是什么类型的?date\u added=models。DateField(auto\u now\u add=True)将执行指令并从那里进行调查。谢谢你的帮助。
from django.db.import connection
connection.queries