4

私が常に衝突することの 1 つは、Django を使用してマスター/ディテール アプリケーションを実装する方法です。典型的な例は Invoice と InvoiceLines です。

議論すべき事項は次のとおりです。

  • マスター モデルと詳細モデルの保存、読み込みなどのコードを構造化する方法
  • ビュー: ファイルとテンプレート、詳細線のテンプレート、動的に追加する方法
  • 自動計算されたフィールド (親行の合計など)、このコードの行先は?

編集/追加:

自動計算されたフィールドについては、ここに私の最初のソリューションhttp://pastebin.com/ZGqNnHuCがありますが、モデルの保存方法の方が良いのではないでしょうか?

マスター モデルには、詳細モデルからの値が必要です。(つまり、最初に各詳細の合計を計算し、各行を保存し、次に合計してマスターを保存する必要があります) calculate() メソッドを呼び出すよりも Django の方法でどのように作成されますか?

4

1 に答える 1

4
  • マスター モデルと詳細モデルは、1対多の関係によって関連付けられた 2 つの別個のモデルです。それらを同じフォームに組み込むには、Model Formsets (詳細はこちら) を使用する必要があります。
  • 行を動的に追加するには、この回答を検討してください
  • 同じことがフィールドの自動計算にも当てはまります。純粋な JavaScript または「計算ビュー」への ajax 呼び出しを使用して行うことができます (したがって、コードはテンプレートまたはビューにあり、最終的にモデルなどの他のモジュールを呼び出します。計算していますか)
于 2013-03-26T20:19:02.013 に答える