2009-05-30 9 views
0

皆さん、こんにちは皆私はdjangoの管理者についていくつかの質問があります。Djangoで注文を作成する

最初に関連する詳細。私は現在、クライアント、プリンタ、カートリッジ、およびオーダーのモデルを持っています。

プリンタモデルには、カートリッジモデルのManyToManyFieldがあります。このモデルを使用すると、そのプリンタで使用できるカートリッジをすべて選択できます。

Clienteには、自分が所有するプリンタのManyToManyFieldがあります。

1)Django管理者から注文を作成して、ManyToManyFieldを使用してクライアント、ダイセット、および複数のカートリッジを指定できるようにしたいとします。これは、新しいカートリッジかリフィールかを指定する別のテーブルを使用しなければならないので、ややこしいことです。

2)私は管理者に、自分が所有するプリンタに属するものだけを表示するようにカートリッジをフィルタリングします。

3)また、注文の合計金額を保持するフィールドを持っていますが、注文に追加したカートリッジの数に基づいて計算する必要があります。注文に同じカートリッジを追加するか、数量を指定する別のフィールドを関連テーブルに追加することで、これを実行する必要があるかどうかはわかりません。

これは管理者で行うことができますか、またはフォームを使用する必要がありますか?もしそうなら、これを管理者に追加するにはどうすればいいですか?それは私がクライアントを事前に知っておく必要があるカートリッジのリストをフィルターにかけるために、私は複数の部分でやらなければならないだろう、そしておそらく何かが難しいようです。

答えて

2

私が見る限り、いいえ、それは本当に可能ではありません。開発版にはmethods for limiting foreign keysがありますが、別の外部キーに依存するため、顧客に基づく制限は可能ではないようです。

あなたが本当に管理者のフォームでやっているのであれば、Javascriptを使用することをお勧めします。 AJAXコールを作成して、顧客のプリンタのリストとそれに基づいて表示するカートリッジを取得する必要がありますが、これを行うこともできます。あなたはthe Media classでロードするJSファイルを指定するだけです。

しかし、それは価値があるよりも多くの仕事だと思います。私がそれをするのが最も簡単な方法はForm Wizardsであるでしょう。そうすれば、顧客を選択するステップがあるので、次のステップでは、表示するカートリッジを知ることができます。

希望に役立ちます!

1

私は同様の問題を抱えてきました。このような多くの場合、フォームを使用して独自の管理インターフェイスを作成するのは、意図していない管理者そこにいる。

3)は、あなたの製品のベースがどのように見えるかによって異なります。顧客が同一のウィジェットを50個注文する可能性が高い場合、おそらく数量項目が必要です。顧客が2つのウィジェットを注文する可能性が高い場合は、1つは赤で、もう1つは青で、各アイテムをmanytomanyフィールドに別々に追加し、オーダーインターフェースでグループ化します。

関連する問題