在Django中从一个表单创建多个对象实例
我有一个想法,想做一个非常简单的“网上商店”。一次销售可以包含一个或多个商品。
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)
我现在遇到的问题是,如何创建一个表单来生成一个销售记录,而这个销售记录又可以包含多个商品。我有一个简单的页面设计,里面有一个基本的“购物车”,用户可以在里面添加多个商品。
但是我不知道怎么把这些数据以合适的格式传回到django应用程序,以便它能理解、验证、创建实例等等。
我开始考虑一个解决方案,就是通过JavaScript发送一个包含购物车信息的JSON片段,然后让django应用来解析这些信息……不过我更希望能使用django的表单功能。
有没有什么指导、想法或者解决方案呢?
1 个回答
3
我刚刚遇到你说的问题。可能你已经找到解决办法了,因为已经过去5年了。不过如果还没有的话,你可以使用表单集工厂来处理模型 Item
,而对模型 Sale
则使用普通的模型表单。这样可以通过在表单中渲染多次你的 Item 模型,来创建多个 Item 实例。
你可以查看这个链接 https://medium.com/all-about-django/adding-forms-dynamically-to-a-django-formset-375f1090c2b0。里面有很好的示例,教你如何使用表单集工厂。