Вставка в select в Django

Есть ли в Django ORM способ выполнить вставку в оператор select. Можно предположить, что у меня есть модели django, созданные для table2 и table1 из нижеприведенного запроса

INSERT INTO table2 (column1, column2, column3, ...)
SELECT column1, column2, column3, ...
FROM table1
WHERE condition;

Я думаю, что вы не можете сделать это напрямую, но можете использовать bulk_create для выполнения операции достаточно быстро для большинства случаев:


id_list = FileSet.objects.filter(file_set_id=1).values_list('id', flat=True)
TrainingFileSet.objects.bulk_create([TrainingFileSet(file_set_id=id) for id in id_list])

Если это недостаточно эффективно, вы всегда можете запустить sql-код напрямую: https://docs.djangoproject.com/en/4.0/topics/db/sql/#executing-custom-sql-directly

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