1

私は次のように構成されたプロジェクトを持っています:

project/
   __init__.py
   db/
      models/
         __init__.py
         article.py
         project.py
         ontology/
            __init__.py
            coded.py

少し大きいですが、それがアイデアです。models.__init__.py含まれています:

from db.models.article import *
from db.models.project import *
from db.models.ontology.coded import *

syncdbを実行すると、にインポートされたすべてのモデルが無視されmodels.__init__.pyます。はありませんImportError。printステートメントをに追加すると__init__.py、インポートモデルが正常に印刷されます(syncdbの実行中)。

ただし、モデル機能し__init__.pyます。

何故ですか?インポートしたモデルをsyncdbに強制的に説明させることはできますか?

編集:アプリケーションINSTALLED_APPSにあります:

INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'amcatnavigator.navigator',
'amcatnavigator.db',
)

ありがとう!

4

3 に答える 3

4

app_label = 'db'モデルの Meta 内部クラスに追加する必要があります。

于 2011-04-14T12:21:47.093 に答える
3

South (syncdb) ドキュメントによると: http://south.aeracode.org/docs/tutorial/part1.html settings.py ファイルの INSTALLED_APPS セクションにあるモデルに対してのみテーブルが作成されます。モデルが使用されているが、その変更があり、データを失いたくない場合は、移行を使用してください: http://south.aeracode.org/docs/tutorial/part1.html#the-first-migration

更新:私が見た限り、Django は設計上、異なるディレクトリ内でモデルを見つけられません: http://code.djangoproject.com/ticket/14007 app_label を使用することをお勧めします。

更新: app_label ドキュメント: http://docs.djangoproject.com/en/dev/ref/models/options/#app-label

于 2011-04-14T11:35:41.733 に答える
0

dbモジュールがINSTALLED_APPS設定のリストに含まれていないようです。他の亜種については十分な情報ではありません。

于 2011-04-14T11:29:40.317 に答える