これはかなり一般的な必要性である...私はあなたがmodels.py
ファイルを分割(とあまりにものviews.py)することができます10,000行の長:-)
だmodels.pyファイルを介してウェーディングを想像することはできませんpacakgeへ。 __init__.py
ファイルがパッケージにフォルダを作る
/my_proj
/myapp
/models
__init__.py
person.py
:この場合、あなたのプロジェクトツリーは次のようになります。それが終わっています一度
class Person(models.Model):
name = models.CharField(max_length=128)
class Meta:
app_label = 'myapp'
、あなたの__init__.py
でモデルをインポートします。唯一の落とし穴は、モデルのapp_labelを示し、あなたのモデルのための内部Meta
クラスを定義してくださいするそうDjangoはトラブルあなたのスキーマを構築する必要がありますですジャンゴと同期DBはそれを見つけるようにファイル:
from person import Person
することができます。この方法はまだfrom myapp.models import Person
しかし、モデル同士を関連付ける必要がある場合は、どうすれば別のアプリに配置できますか? – Teifion
1つのモデルは別のパッケージのモデルを簡単に参照できます。ほとんどの場合、「高レベル」と「低レベル」のモデルがあります。 1つのアプリケーションで下位レベルのモデルを実装します。より高いレベルのアプリケーションは、より低いレベルのアプリケーションのモデルに依存することができます。 –
django.contrib.authのUserモデルに外部キーを設定するときはいつでも、別々のアプリケーションに関係しています... –