2012-01-13 2 views
0

У меня есть файл, заполненный моделями, встроенными в мое приложение, а не в каталог models.py или моделей.Есть ли способ получить syncdb, чтобы вытащить модели, которые не находятся в models.py?

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

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

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

+0

Вы можете написать модели в файле models.py и включить путь к каталогу этого файла в параметре 'INSTALLED_APPS' в файле настроек. –

ответ

2

temp_app/models.py

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

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

Run SyncDB

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

1

время от времени лба

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

class Meta: 
    app_label = 'foo' 

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

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