在django中从一个表单创建多个对象实例

时间:2014-11-01 18:01:27

标签: python django forms

我有一个案例,我想要一个非常简单的网上商店"。 销售包括一件或多件商品。

class Sale(models.Model):
  timestamp = models.DateTimeField()
  value = models.FloatField()


class Item(models.Model):
  seller = models.ForeignKey(Seller)

  value = models.FloatField()
  timestamp = models.DateTimeField()

  sale = models.ForeignKey(Sale)

我正在努力的是创建一个创建Sale的表单,而Sale又包含多个Items。我从概念上讲是一个简单的页面设置,它有一个基本的购物车"用户可以添加多个项目。

但我不知道如何以良好的格式将数据传回django应用程序来解释,验证,创建实例等。

我开始考虑一个解决方案,我将通过Javascript发回包含购物车的JSON-snippet,并让django app解释那些信息...但我宁愿能够使用django表单。< / p>

任何指导方针,想法和解决方案?

1 个答案:

答案 0 :(得分:1)

刚才遇到了您的问题。也许您已经找到了解决方案,因为已经过去了5年。但是,如果没有,则可以为模型Item使用formset factory,为模型Sale使用常规模型表单。通过在表单中​​渲染n倍的Item模型,这可以帮助您创建Item的多个实例。

您可以检查此链接https://medium.com/all-about-django/adding-forms-dynamically-to-a-django-formset-375f1090c2b0。它提供了如何使用formset工厂的好示例。