2012-02-15 5 views
1

Я пытаюсь заказать набор запросов, а затем отфильтровать упорядоченный набор. Должно ли это работать? Или требуется, чтобы order_by была последней операцией в цепочке?Порядок операций с запросом Django

, например

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

это так же, как?

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

Я не получаю одинаковых результатов между ними.

+3

Какие результаты вы получаете? Я не уверен, но фильтрация после заказа может означать, что заказ по умолчанию будет повторно применен. –

+0

. Вы можете узнать, применив qs.ordered в своем первом наборе запросов и посмотрите, преобладает ли заказ (https://docs.djangoproject.com/ ru/dev/ref/models/querysets/# django.db.models.query.QuerySet.ordered) – Jingo

+3

Я только что проверил с 'order_by' до и после, и оба создали тот же SQL и те же результаты - ни с какие-то проблемы. Является ли 'books_count' фактической переменной или просто отсутствием котировок? –

ответ

0

Примечание. В соответствии с приведенными выше замечаниями порядок, в котором вы применяете фильтры (фильтр, order_by), не имеет значения.

Смежные вопросы