2015-04-10 3 views
1

Я пытаюсь создать представление базы данных из django вместо ассоциировать модель из существующей таблицы базы данных. Я новичок в мире django, и я не знаю, как я могу это сделать. У кого-нибудь есть какая-то идеа, с которой начать искать решение? Возможно, это невозможно, но можете ли вы увидеть альтернативное решение?Как выполнить модель, представляющую существующую таблицу или представление базы данных?

Я понимаю, как определить модель, которая, как никакое управление, рассмотрит managed=False, как я нашел на django docs, но как я могу создать индивидуальный SQL-просмотр в моем классе модели?

что-то вроде этого:

Class myModel(models.Model): 

    Object = models.raw("CREATE VIEW foo AS SELECT * FROM table.A") 
    class Meta: 
    db_table = 'myview\".\"mymodeltable' 
    managed = False 
+0

Что вы пытаетесь достичь? –

+0

https://docs.djangoproject.com/en/1.8/howto/legacy-databases/ – Selcuk

ответ

0

С inspectdb команды управления, вы можете получить определение модели из существующих таблиц. Чтобы сделать это, вам нужно настроить файл settings.py, чтобы иметь доступ к базе данных вы хотите работать, а затем сделать:

python manage.py inspectdb > models.py 

Вы увидите, что он также автоматически устанавливает managed=False. С этого момента вы можете начать запрашивая свои объекты с типичной objects.all(), objects.filter() и этот материал

Примечание: Не забудьте добавить приложение с импортными моделями в INSTALLED_APPS переменной вашего settings.py файл.

0

К сожалению, может быть, это окончательный ответ, который можно найти на DjangoDocs

Это полезно, если модель представляет собой существующую таблицу или представление базы данных, которая была создана с помощью некоторых других средств.

Смежные вопросы