現在の django プロジェクトのアプリ間でモデルをインポートする際に問題があります。開発サーバーを実行するか、データベースを同期しようとすると、次のエラーが表示されます。
File "/path/to/Project/../Project/app1/models.py", line 3, in <module>
class SomeModel(Thing):
NameError: name 'Thing' is not defined
これはProject/main/models.pyで定義されており、次の方法で Project /app1/models.pyにインポートします。
from project.main.models import Thing
この種のことは、python が循環インポートを防止した結果である可能性があることを認識しています。
現在、main、app1、app2 の 3 つの django アプリがあります。
各アプリのインポートは次のようになります。
主要:
from project.app1.models import AnotherThing
app1:
from project.main.models import Thing
app2:
from project.main.models import Thing
from project.app1 import Something
app1 から app2 へのモデルのインポートが問題を引き起こしていると思われます。これらのアプリはどちらも main からモデルをインポートし、次に app1 からモデルをインポートするためです。
この場合、これらのインポートと同じ効果を得るために他にどのような方法を使用できますか? 私がこれに遭遇しないように、物事を整理するより受け入れられた方法はありますか?