一連のDjangoモデルのコードをリファクタリングしようとしていますが、これは一般的なPythonインポートに有効です。私のセットアップと問題を説明させてください(完全に偽のクラスなどで)
APP_ROOT/
|- __init__.py
|- tests/
|- urls.py
|- models/
| |- __init__.py
| |- BunchOfModels.py
| |- SomeMoreModels.py
\- admin.py
でmodels.__init__
:
# models/__init__.py
from APP_ROOT.models.BunchOfModels import *
from APP_ROOT.models.SomeMoreModels import *
これにより、次のことが可能になります。
from APP_ROOT.models import SuperModel
# Where SuperModel is in SomeMoreModels
問題は、クラスreprが次のとおりであるということです。
<class 'project.APP_ROOT.models.SomeMoreModels.SuperModel'>
これは外部キーを台無しにします。
私の質問:
これを行う方法はありますか?これにより、すべてのクラスが次のようなreprを持つようになり
ます。各クラス<class 'project.APP_ROOT.models.SuperModel'>
のforを手動でオーバーロードする必要はありません。__repr__
これで問題が解決するかどうかさえわかりません。解決したとしても、これはうまく移植できません。
または、1つの大きくて醜いファイルの使用に戻る必要がありますか...