Подзапрос Django с использованием QuerySet - PullRequest
3 голосов
/ 22 сентября 2010

Можно ли выполнить подзапрос в QuerySet, используя другой QuerySet?

Например:

q = Something.objects.filter(x=y).extra(where=query_set2)

Ответы [ 2 ]

6 голосов
/ 22 сентября 2010

Краткий ответ: Нет. Метод extra не предполагает, что наборов запросов будет передано.имеет смысл.Наборы запросов - это абстракция, используемая для представления результатов операции выборки в базе данных, а extra - удобный способ присоединения пользовательских полей из базы данных к набору запросов.Если вы не измените фундаментальную природу extra на «пользовательскую фильтрацию с другим набором запросов», это не сработает.

2 голосов
/ 22 сентября 2010

Я могу понять ваш вопрос двумя способами.

  1. Вы можете указать несколько переменных в параметрах вашего фильтра, для пример:

    q = Something.objects.filter(x=y, w=z)
    
  2. Вы хотите сделать так называемое «соединение» в SQL. Это можно сделать через систему агрегирования Django, см. Официальную документацию Django .

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