2012-02-15 33 views
1

我试图订购一个查询集,然后过滤有序集。这应该工作吗?还是需要order_by是链中的最后一个操作?Django查询集操作顺序

例如

qs.order_by(books_count).filter(author="bob") 

是此相同?

qs.filter(author="bob").order_by(books_count) 

我没有得到两者相同的结果。

+3

你会得到什么结果?我不确定,但过滤后的顺序可能意味着默认排序重新应用 – 2012-02-15 20:32:03

+0

你可以通过在你的第一个查询集上应用qs.ordered来查看是否顺序是通行的(https://docs.djangoproject.com/ en/dev/ref/models/querysets /#django.db.models.query.QuerySet.ordered) – Jingo 2012-02-15 20:32:11

+3

我只是在前后用'order_by'做了一个测试,并且都产生了相同的SQL和相同的结果 - 任何问题。 'books_count'是一个实际变量还是缺少引号? – 2012-02-15 21:03:18

回答

0

注意 - 根据以上注释,您应用过滤器(filter,order_by)的顺序无关紧要。