Вопрос des c
- Выполнить запрос по django orm
test_result = table1.objects.filter(q_filter).values(*groupby_columns).annotate(**{d: Sum(d) for d in data_columns})
Получил ошибку
Unknown column 'table2.column1' in 'field list'
Это странно, потому что я выполняю запрос на модели
table1
, но получил ошибку на модели
table2
Отладка
- print sql
print(test_result.query)
Я получил это:
SELECT `table1`.`column1`, `table1`.`column2`, SUM(`table1`.`data`) AS `data` FROM `table2` WHERE (`table1`.`column3` = 4 AND `table1`.`column4` = 0 AND `table1`.`column1` >= 2020-04-01 AND `table1`.`column1` <= 2020-04-08) GROUP BY `table1`.`column1`, `table1`.`column2` ORDER BY NULL;
Я не уверен, есть ли кэш в django orm, и он записывает условие запроса, которое я выполняю в прошлый раз, поэтому вызовите эту ошибку.
Это часто случается, но восстанавливается после перезапуска службы.
Env
- Python3 .6.9
- Django2.0.2
- Mysql5.6
Кто-нибудь сталкивался с этой проблемой. Пожалуйста, говорите
Дополнительно
table1 & table2 имеют одинаковую структуру и одинаковые логики orm c