Я использую django 2.0.7, поэтому я хочу заказать набор запросов и затем выбрать отдельные записи, после этого я собираюсь выполнить некоторую фильтрацию, как вы можете видеть здесь, я делаю заказ и выберите разные вещи
forms = Form.objects.order_by('user','-created_at').distinct('user')
и здесь я фильтрую некоторые атрибуты
filterd_qs = forms.filter(**query)
проблема в том, что запрос order_by выполняется после запроса фильтра , что вызывает неожиданное Результаты (он применяет фильтр ко всему набору запросов), запрос sql был получен из последнего фильтра:
SELECT DISTINCT ON ("table"."user_id") fields FROM "appname_form" WHERE where_clause ORDER BY "appname_form"."user_id" ASC, "appname_form"."created_at" DESC;
, как мне заставить django orm обернуть запрос orderby запросом фильтра !! любое предложение подойдет
edit: ребята, я думаю, вы не поняли проблему, допустим, что у нас есть этот набор запросов
queryset = [
('john',"02-23-2020",type2),
('sarah',"02-03-2020",type1),
('joe',"01-11-2020",type2),
('john',"02-25-2020",type1),
('joe',"02-28-2020",type1)
]
, когда я впервые выполняю отдельный порядок запросить результат будет
queryset = [
('john',"02-25-2020",type1),
('sarah',"02-03-2020",type1),
('joe',"02-28-2020",type1)
]
, а затем, когда я выполню фильтр, например:
queryset = Form.objects.order_by('user','-created_at').distinct('user')
qs = queryset.filter(type=type2)
результат будет
queryset = [
('john',"02-23-2020",type2),
('joe',"01-11-2020",type2)
]
, хотя результат должен пустой набор запросов !!