Существует 2 возможных подхода к адаптации ваших моделей к устаревшей таблице базы данных (без использования представлений):
1) Запустите python manage.py inspectdb в вашем проекте. Это создаст модели для существующих таблиц базы данных, после чего вы сможете продолжить работу с ними.
2) Измените ваши таблицы с некоторыми конкретными настройками. Прежде всего, вы определяете имя таблицы в вашей модели, устанавливая опцию db_table в ваших мета опциях. Во-вторых, вы определяете для каждого поля имя столбца, которое соответствует вашей прежней базе данных, устанавливая параметр db_column. Обратите внимание, что в списке есть другие опции db_, которые вы, возможно, могли бы использовать для соответствия своей прежней базе данных.
Если вы действительно хотите, чтобы представления приближались к возможному (безобразному) обходному пути, вы можете определить пользовательских команд sql для каждой модели приложения. Этот файл находится в "application" / sql / "model" .sql. Django вызовет этот sql после создания всех таблиц. Вы можете попытаться указать операторы DROP для сгенерированных таблиц, после чего в этом файле следует ваш оператор создания представления. Обратите внимание, что это будет немного сложнее для таблиц с внешними ключами, так как django гарантирует отсутствие порядка выполнения этих файлов (поэтому я думаю, что объединить все операторы в один .sql будет проще всего, я никогда раньше не пробовал).