У меня проблемы с фильтрацией по запросу, и я не знаю почему.Все остальные мои фильтры работают нормально.
Прежде всего, у меня есть коллекция mongoDB с данными, похожими на эти:
_id: generated
title: stringfield
date: Datefield
Responses: EmbeddedDocument
user: ReferenceField
help: BooleanField
Текущие ответы, хранящиеся в БД (все с одним и тем же пользователем):
- 2 раза с Responses.help = False
- 2 раза с Responses.help = True
Теперь я хочу знать, сколько разПользователь ответил на вопросы:
@queryset_manager
def responses_user(doc_cls, queryset):
return queryset.filter(responses__user=current_user.id).count
Приведенный выше запрос работает, он возвращает правильное количество ответов (4).Теперь я хочу добавить к нему фильтр, потому что я хочу знать, сколько раз пользователь ответил True.Таким образом, запрос становится:
@queryset_manager
def responses_user(doc_cls, queryset):
return queryset.filter(responses__user=current_user.id, responses__help=True).count
Теперь я получаю результат, которого я не понимаю.Это возвращает мне 3. Это должно быть 2. Я не понимаю две вещи по этому поводу:
- Почему это возвращает 3?Это действительно странное число
- Почему мой запрос не работает?
К вашему сведению, способ звонка:
responses = Questions.responses_user()
Так что это можетне проблема, я думаю