2011-12-23 19 views
0

私は現在、django adminを使用してソリューションを実装しています。ユーザーはdb製品とカスタム属性と詳細を定義できます。これにより、ajaxでカスタムビューをクエリして、同じフォームセットビュー(DOMの操作)で直接必要となるフォームフィールドを自動的に構築するためのJSONデータを返すことができます。Django管理ストア動的フォームセットをajaxで追加しました

現在のDBの設計は、このスキーマを、次のとおりです。あなたは私が属性別に集計しより多くの製品、製品ごとの詳細の多くは、そこにすることができカタログを持って見ているよう Catalog(name, description, photo) Product(rel_catalog, name, base_price, photo, manufacturer_email) ProductDetail(rel_product, rel_attribute, percentage_price, fixed_price) ProductAttribute(rel_product, name, description)

。次に、デフォルトでカタログを表示し、そのカタログに使用可能なすべての製品を選択して適切な製品を選択すると、完全なフォームが得られます(各行にはProductAttribute.nameのラベルがあり、関連するProductDetailの選択があります)。

すべてがうまく動作しますが、誰かがフォームを完成したときにこの参照をDBに保存する必要があります(選択した製品で注文する)。このフォームはStackedInlineとして表示されます(ModelAdminは注文用です)。 私は注文を追跡するために、この設計を使用することを考えていたように、製品ごとがあるかもしれませんどのように多くの選択肢を知らない: Order(customer, status, notes, tot_price, inserted_by) OrderItem(rel_order, catalog, product, unit_price)

しかし、私は動的な追加入力を保存する方法がわかりません... 私はOrderItemProperty(rel_orderitem, rel_productdetail, rel_productattribute)をそれぞれの入力を保存するためにthicingしていました...しかし、この未知のフィールドをどのようにループするのですか?

もっと良いデザインをお勧めしますか?

もっとコードが必要な場合は、質問してください。私はペーストビンのリンクを返信します。 ありがとうございます。

+0

「*誰かがフォーム*を記入したとき」という意味のユーザー(javascript)イベントを指定してください。ユーザーがボタンを押すと、いくつかのフィールドがフォーカスを失いますか? – sergzach

+0

誰かが「保存」ボタンをクリックすると、動的に追加されたajaxフィールド(何らかの形で保存する必要があります)を使用してフォームデータを送信します。 –

答えて

1

最後に、私は実用的なソリューション、

を得た私はデフォルトをオーバーライドし、カスタムビューを作成しましたが、私は私がしたいものは何でもカスタマイズすることができ、私はそれぞれの取り扱いPOSTデータを読み取ることができ、このようにビューを「追加します/」データを正しいモデルに入れます。

関連する問題