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