Есть ли способ заставить syncdb извлекать модели, которых нет в models.py? - PullRequest
0 голосов
/ 13 января 2012

У меня есть файл, заполненный моделями, встроенными в мое приложение, а не в файл models.py или каталог моделей.

По сути, это файл, который указывает на таблицы в устаревшей базе данных, поэтому я поместил его в отдельный файл.

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

Можно ли мне это сделать? Или я должен создавать таблицы вручную, используя SQL?

Ответы [ 2 ]

2 голосов
/ 13 января 2012

temp_app / models.py

from my.deep.in.code.modelfile import model1
from my.deep.in.code.modelfile import model2

Добавить temp_app к установленным приложениям (убедитесь, что в директории также есть init .py)

Запустить Syncdb

Удалить temp_app из установленных приложений

1 голос
/ 13 января 2012

время удара по лбу

Хорошо, поэтому эта часть является ключевой: если вы импортируете модели из других мест вашего проекта, а не из обычных файлов models.py, обязательно добавьте:

class Meta:
    app_label = 'foo'

В противном случае модели будут игнорироваться syncdb!

Я попробовал кое-что в соответствии с тем, что написал Тед, но по какой-то причине, пока я не добавил часть app_label, syncdb смог создать модели.

...