2011-02-10 2 views
0

Рассмотрим модель и запрос с использованием аннотаций, например, следующий пример из документации Django: http://docs.djangoproject.com/en/dev/topics/db/aggregation/Отфильтрованные аннотаций без удаления результатов

Publisher.objects.filter(book__rating__gt=3.0).annotate(num_books=Count('book')) 

В результате этого запроса будет содержать только объекты, соответствующие фильтр (т.е. имеет значение book_rating больше 3.0), и эти объекты были аннотированы. Но что, если я хочу, чтобы запрос содержал все объектов, но только аннотировать объектов, соответствующих фильтру (или, например, аннотировать их с помощью 0)? Или это даже возможно?

ответ

0

Нет, вы не можете этого сделать, потому что это не то, как работает базовый SQL.

Единственное, что я могу придумать, это сделать два запроса: один с фильтром/аннотацией и без него, а затем пропустить их через Python, добавив аннотацию к соответствующим объектам из нефильтрованного списка.

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

  • Нет связанных вопросов^_^