170 похожих чатов

Question.Objects.Filter(Theme__in=Unique_themes).Order_by(‘?’)[:6] При таком запросе, order_by(‘?’) может повторять тему из unique_themes. Т.е.

бывает получаю 6 вопросов с уникальной темой, а бывает, что темы повторяются.
Как это можно исправить?

13 ответов

15 просмотров

.distinct()

Богдан- Автор вопроса

спасибо, в данном случае не работает. order_by() странно работает. Я не пойму как правильно сделать .distinct(), чтобы не было ошибки subquery has too many columns LINE 1: ...OM "testme_question" WHERE "testme_question"."id" IN (SELECT.. сам запрос SELECT DISTINCT "testme_question"."id", "testme_question"."title", "testme_question"."title_uk", "testme_question"."title_ru", "testme_question"."title_en", "testme_question"."image", "testme_question"."help", "testme_question"."help_uk", "testme_question"."help_ru", "testme_question"."help_en", "testme_question"."number", "testme_question"."number_global", "testme_question"."show", "testme_question"."correct_answers", "testme_question"."order", "testme_question"."updated", "testme_question"."real_updated", RANDOM() FROM "testme_question" INNER JOIN "testme_question_theme" ON ("testme_question"."id" = "testme_question_theme"."question_id") WHERE "testme_question_theme"."theme_id" IN (SELECT DISTINCT ON (U0."title_uk") U0."id" AS Col1 FROM "testme_theme" U0 INNER JOIN "testme_question_theme" U1 ON (U0."id" = U1."theme_id") INNER JOIN "testme_question" U2 ON (U1."question_id" = U2."id") INNER JOIN "testme_question_ticket" U3 ON (U2."id" = U3."question_id") INNER JOIN "testme_ticket" U4 ON (U3."ticket_id" = U4."id") WHERE (U0."title_uk" IS NOT NULL AND U4."AB" = 6 AND U0."number" IN (1, 2, 3, 4, 5, 6, 7, 9, 10, 11, 12, 13, 14, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 34, 37, 38, 39, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62) AND U0."parent_id" IS NULL) ORDER BY U0."title_uk" ASC) ORDER BY RANDOM() ASC LIMIT 6

судя по описанию проблемы, theme - это в FK в другую модель в этом случае filter делает JOIN и записи parent модели могут дублироваться

а, ну вот как бы и джоин)

Question.objects.filter(theme__in=unique_themes).distinct().order_by(‘?’)[:6] ?

Богдан- Автор вопроса

subquery has too many columns LINE 1: ...OM "testme_question" WHERE "testme_question"."id" IN (SELECT…

а откуда берется testme_question?

Богдан- Автор вопроса

unique_themes = Theme.objects.filter( question__ticket__AB=complect, number__in=nums_pull, title__isnull=False, parent__isnull=True).order_by('title').distinct('title_uk’) Question.objects.filter(theme__in=unique_themes).order_by(‘?’)[:6]

ты задачу определи, перед тем как что-то писать, то что там я показывал тебе двумя запросами будет брать все вопросы с без разницы каким количеством тем

Богдан- Автор вопроса

@shocodeart здесь повторяются темы во втором запросе

очень люблю когда люди темнят и заставляют угадывать, когда просят помощи)

так твой второй запрос вытащит все вопросы с такими темами

Богдан- Автор вопроса

в первом запросе все ок, но что делать со вторым? именно в нем ошибка, что distinct() там не работает

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта