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?