4

現在、django プロジェクトに取り組んでいます。私はdjangoがまったく新しいわけではありませんが、いくつかのファイルを整理するための最も「ジャンゴニック」な方法を理解するのに苦労しています。

ものを計算するクラスがいくつかあり、manage.py の cli から、および webservice アプリで使用できます。これらの計算では、コア アプリのモデルを使用し、データベースを呼び出します。

私が直面している問題は、これらのソース ファイルをどこに置くべきか分からないことです。

それらを「lib」フォルダーに入れたくありません。このフォルダー内のモジュールは、django に依存しないモジュールになると思います。

今のところ、モジュールは私のアプリのモデルにあります。しかし、それは新しい構造を定義していないため、最もクリーンな方法ではないと思います。

「ジャンゴの生き方」を尊重するクリーンな構造を持つためのアイデアはありますか?

ありがとう

4

2 に答える 2

6

問題は、これを行う最も「ジャンゴニック」な方法は、「コアアプリ」をまったく持たないことです。機能を個別のアプリに分割するように努める必要があります。これが必ずしも些細なことではないことを私は完全に認識しています。

しかし、学校のイントラネット Web サイトを設計しているとしましょう。学生のアカウントを処理する 1 つのアプリと、時間割を生成する別のアプリ、および内部メッセージ ボードなどのための別のアプリを用意します。すべてのアプリは独自のモデルを定義します (「プロジェクト レベルのモデル」はありません)。お互いのモデルをインポートします (メッセージ ボードの投稿に、「学生」アプリからの学生を指す ForeignKey フィールドを含めることができます)。「メイン」アプリや「コア」アプリは必要ありません ( DjangoCon での James Bennett の「再利用可能な Django アプリケーションの作成」プレゼンテーションも参照してください)。

management/commands次に、コマンドが処理するアプリのディレクトリに管理コマンドを配置します。たとえば、コマンドが古い学生をデータベースから削除するとmanagement/commandsstudentsアプリ内に入ります。

于 2013-10-19T07:50:04.143 に答える
1

モジュールが Django から独立している場合は、それsetup.pyをインストールするための を備えたスタンドアロンの Python パッケージにする必要があります。それを使用する Django モデルと Web サービスは、他の外部依存関係と同様にインポートできます。

モジュールが Django アプリに依存している場合は、アプリのディレクトリ内にある必要があります。新しいモデルを定義しない場合は、models.py.

これはあなたの質問に答えていますか?

于 2013-10-19T07:49:28.573 に答える