2013-04-21 58 views
1

我怎麼能用Django從單個表單中添加多個對象?如何實現用Django表單添加多個對象?

例如:如果我有銷售表格存儲銷售產品的註冊表。

想象形式:

datetime: [_____________] 
customer: [_____________] 
product: [______________] ---> How should I implement adding multiple products 
           in the same form? 
cost: [_________________] 

Save (button) 

提示:這只是一個問題,如果你有一些想法,請告訴我,因爲我不知道該怎麼做。

感謝

回答

2

一種方法是使用一個Formset。例如,您可能在Django管理員中看到過的表單集,用於將多個相關對象顯示爲內聯。

另一種方式可能涉及AJAX,例如解決方案:

  • 「增值產品」是一個簡單的<ul>列表的產品加入到訂單
  • 「產品搜索」是一個純文本字段,其中用戶輸入產品名稱或SKU
  • 用戶輸入通過AJAX發送到服務器,該服務器返回相關產品的列表
  • 這些產品建議向用戶顯示
  • 當用戶點擊產品名稱,另一個AJAX請求以給定的產品與
  • 請求完成後,「增值產品」名單是通過AJAX更新,以及新加入的產品訂單關聯似乎有

這將要求您首先創建一個臨時訂單,以便以後可以通過單獨的請求附加產品。 Formsets沒有這個要求,但是我個人並沒有使用它們,他們看起來有點麻煩。

+0

首先我要感謝您解決我的問題:) ....哦,有趣的是,老實說我正在考慮在我的項目中實現ajax ..你知道關於它的一些教程? – dcft 2013-04-21 05:40:41

+0

我不記得任何東西,但很簡單,您只需編寫一個常規視圖並通過例如jQuery的'$ .ajax()'。 View可以返回您添加到頁面並顯示給用戶的部分HTML,或者它可以返回您在JS中處理的JSON(例如,創建必要的DOM元素以顯示產品建議)。 – Tony 2013-04-21 11:40:54