Значения ORM в Django () и select_related () вызывают ошибку TypeError - PullRequest
0 голосов
/ 14 января 2019

В моем проекте django мне нужно выполнить запрос ORM следующим образом:

ordered = t_threads.objects.values('thread_stag').filter(thread_status='DEAD',id_test__test_main__descr__contains= 'Hello').distinct().select_related().order_by('id')[1:10]

мне нужно сгруппировать результат для значения 'thread_stag', отфильтрованного по состоянию и описанию теста, имея все значения из связанных таблиц, но когда я выполню приведенную выше систему запросов, вернусь:

повышение TypeError ("Невозможно вызвать select_related () после .values ​​() или .values_lis т () ")

если я уберу опцию select_related (), у меня не будет значений из связанных таблиц. Как мне достичь своего результата в Django ORM?

Огромное спасибо заранее

1 Ответ

0 голосов
/ 14 января 2019

Просто переместите values в конец, как показано ниже:

ordered = t_threads.objects \ 
           .filter(thread_status='DEAD',id_test__test_main__descr__contains= 'Hello') \
           .distinct() \ 
           .select_related() \ 
           .values('thread_stag') \ 
           .order_by('id')[1:10]

Обратите внимание, что вы также должны указать список полей для select_related!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...