1
我试图订购一个查询集,然后过滤有序集。这应该工作吗?还是需要order_by是链中的最后一个操作?Django查询集操作顺序
例如
qs.order_by(books_count).filter(author="bob")
是此相同?
qs.filter(author="bob").order_by(books_count)
我没有得到两者相同的结果。
我试图订购一个查询集,然后过滤有序集。这应该工作吗?还是需要order_by是链中的最后一个操作?Django查询集操作顺序
例如
qs.order_by(books_count).filter(author="bob")
是此相同?
qs.filter(author="bob").order_by(books_count)
我没有得到两者相同的结果。
注意 - 根据以上注释,您应用过滤器(filter,order_by)的顺序无关紧要。
你会得到什么结果?我不确定,但过滤后的顺序可能意味着默认排序重新应用 – 2012-02-15 20:32:03
你可以通过在你的第一个查询集上应用qs.ordered来查看是否顺序是通行的(https://docs.djangoproject.com/ en/dev/ref/models/querysets /#django.db.models.query.QuerySet.ordered) – Jingo 2012-02-15 20:32:11
我只是在前后用'order_by'做了一个测试,并且都产生了相同的SQL和相同的结果 - 任何问题。 'books_count'是一个实际变量还是缺少引号? – 2012-02-15 21:03:18