Django: Модель с managed = False автоматически включает id в возвращаемый запрос

У меня есть кверисет, основанный на модели, которая имеет managed = False в мета, и django автоматически добавляет поле id в кверисет, даже если оно не включено в список .values().

class GenerateTimeSeriesOuterModel(models.Model):
    class Meta:
        db_table = 'GenerateTimeSeriesOuterModel'
        app_label = 'GenerateTimeSeriesOuterModel'
        managed = False

    # Used by TableSubquery(BaseTable): class in Subquery.py to generate 'from (subquery)'
    subquery = None

    objects = SubqueryManager()

У модели флаг managed установлен в False, и используется пользовательский менеджер. Когда я пытаюсь сделать что-то вроде этого:

GenerateTimeSeriesOuterModel.objects.all().set_subquery(some_subquery).annotate(
    'foo_bar': F('foo_bar')
).values('foo_bar')

Это возвращает следующий запрос:

select
    subquery.id,
    subquery.foo_bar
from (
    select something as foo_bar from some_table
) as subquery

Как вы можете видеть, id добавляется автоматически, но не существует в подзапросе, поэтому он выдает ошибку. Есть мысли по поводу удаления id?

Вернуться на верх