Django — использование inspectdb для загруженной пользователем таблицы

Мое веб-приложение позволяет пользователям загружать/создавать таблицы в базе данных Postgres. Я знаю, что Django ORM нуждается в определении модели в models.py для каждой таблицы в базе данных, чтобы получить к ней доступ.

Интересно, могу ли я вызвать manage.py inspectdb из скрипта после загрузки (или удаления), чтобы автоматически сгенерировать models.py.

Если я использую очереди с django-celery, чтобы убедиться, что каждый inspectdb выполняется по одному, может ли это быть жизнеспособным решением?

Спасибо за ваши комментарии и предложения!


person Below the Radar    schedule 12.04.2013    source источник


Ответы (1)


Ну, вы можете вызывать команды с помощью

from django.core import management
management.call_command('inspectdb')

см. здесь для получения дополнительной информации.

Но я сомневаюсь, что это сработает для динамического создания моделей так, как вы хотите. Во-первых, большинство серверов wsgi необходимо перезагрузить, чтобы изменения вступили в силу.

person Ngenator    schedule 23.04.2013
comment
Спасибо за ваш ответ, вместо этого я тестирую возможности хранилища PostGreSQL. - person Below the Radar; 23.04.2013