1

如何使用 Django 从单个表单添加多个对象?

例如:如果我有一个销售表格,其中存储了销售产品的登记册。

想象一下表格:

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

Save (button)

提示:这只是一个问题,如果你有一些想法请告诉我,因为我不知道该怎么做。

谢谢

4

1 回答 1

2

一种方法是使用Formset。例如,您可能已经在 Django admin 中看到过用于将多个相关对象显示为内联的表单集。

另一种方法可能涉及AJAX,示例解决方案:

  • “添加的产品”是一个简单的<ul>列表,其中包含添加到订单的产品
  • “搜索产品”是一个纯文本字段,用户在其中输入产品名称或 SKU
  • 用户输入通过 AJAX 发送到服务器,服务器返回相关产品列表
  • 这些产品建议显示给用户
  • 当用户单击产品名称时,会发出另一个 AJAX 请求以将给定产品与订单相关联
  • 请求完成后,通过AJAX刷新“已添加产品”列表,并出现新添加的产品

这将要求您首先创建一个临时订单,稍后您可以通过单独的请求附加产品。Formsets没有这个要求,但是我个人用的不多,看起来有点麻烦。

于 2013-04-21T05:35:40.987 回答