1

私が取り組んでいる比較的大きなフラットアプリケーションがあります。関心の分離を維持するために、モデル ファイルとビュー ファイルをauth_modelsdashboard_modelsなどに分割しましたtaxonomy_models。これらは、フォルダ構造に次のように配置されています。

APPNAME/
  app/
    models/ 
      __init__.py
      auth_models.py
      dashboard_models.py
      taxonomy_models.py
      ...
    views/
      __init__.py
      dashboard_views.py
      taxonomy_views.py
      ...

app/models/__init__.pyは次のものを持っています:

from auth_models import *
from dashboard_models import *
from taxonomy_models import *

ただし、実行する./manage.py sql appと、出力がまったく得られません。警告はありません。

この質問の理由は、サウスがいくつかの側面を処理できないデータベースの変更と移行を実装しているためです。したがって、基本的には新しいスキーマからやり直し、後でデータ変換スクリプトを実装して既存のデータセットを移行します。これを行うには、モデル テーブルを作成するためのスキーマが必要です。

4

2 に答える 2

2

auth_models.pyモデル クラスが含まれている場合は、以下をunderMyUserModelに配置する必要があります。__init__.pyapp/models

try:
    from .auth_models import MyUserModel
except ImportError as e:
    sys.stderr.write("Error: failed to import models module ({})".format(e))

PSもう1つの提案は、ファイルに名前を付けるスタイルを改善することです。auth_models.py、 、dashboard_models.pyおよびtaxonomy_models.pyはすべて下にあるため、単に末尾app/modelsを切り詰めることができます。_models.pyつまり、次のファイルの名前を変更します/models

auth_models.py -> auth.py
dashboard_models.py -> dashboard.py
taxonomy_models.py -> taxonomy.py

上記の手順に従って Model クラスをインポートするには:

from .auth import MyUserModel
于 2013-08-19T23:23:35.037 に答える