簡単に言うと、Djangoアプリの精神とアイデアで作業するには、アプリが別のアプリ内からモデルをインポートしても問題ありませんか? たとえば、ユーザー統計アプリは、次のようなユーザー アプリからモデルをインポートします。 from users.models import users
5 に答える
答えはイエスです。djangoプロジェクト内の1つのアプリケーションが、別のアプリケーションからモデルをインポートすることはまったく問題ありません。djangoプロジェクトの力は、アプリとその相互作用にあります。
また、より一般的なアプリケーションからモデルをインポートするユーティリティアプリケーションがあり、その逆ではないことを確認してください。したがって、「userstatistics」アプリは「users」アプリからモデルをインポートする必要がありますが、「users」アプリは「userstatistics」に依存しないでください。
アプリがサードパーティのアプリケーション(たとえばdjango-piston)からモデルをインポートしている場合は、要件ファイルでそのことを必ず指定してください。
一般に公開される可能性がまったくない内部アプリを作成している場合は、もちろん、好きなことをしてください。
一般にリリースされる可能性はほとんどないが、将来/現在の開発者によって使用される可能性がある内部アプリを構築している場合は、確かに、アプリが適切に機能するために必要なものを文書化してください.
パブリック リリース用のアプリを作成している場合は、それを自己依存に保つようにしてください (また、django 内部に依存するようにします。つまり、可能であれば、django が提供するものを使用します)。サードパーティのアプリが本当に必要な場合、またはサードパーティのアプリを使用するとコードが管理しやすくなる場合は、必ず依存関係を含めますが、すべての要件と必要なセットアップを必ず文書化してください。
ほとんどの場合、十分なドキュメントがあれば、ほぼ何でもできます。
User
ただし、 django の builtin と同じ名前の独自のモデルを作成することの正気を疑う必要がありますauth.User
。
継承を使用して Django User モデルをより適切に拡張してみることができます。カスタム フィールドが追加された django ユーザーを使用するため、すべてのアプリで同じユーザーが使用されます。
これをしないでください。それらは同じアプリ名を持ち、ORM は混乱します。代わりに抽象モデルを使用し、両方をそこから派生させます。