如何在 Django 1.8 中多次保存同一个表单?

Posted

技术标签:

【中文标题】如何在 Django 1.8 中多次保存同一个表单?【英文标题】:How can I save the same form more than once in Django 1.8? 【发布时间】:2016-01-06 17:42:44 【问题描述】:

我有一个模型产品和一个相应的表单产品,我需要用 5 个产品来更新库存,所以我输入了产品的数据并询问我要存储多少这个产品的项目,因为所有产品保存是一样的,除了Django默认ID,我想在视图中做这样的事情:

for i in range(0, 5):
   form.save()

很遗憾,这只保存了最后一个表单。

我还能如何实现我的需要?

【问题讨论】:

保存一个,然后create clones of the one from the form 【参考方案1】:

使用commit=False 调用 save 会返回一个未保存到数据库的实例。

instance = form.save(commit=False)

您可以在一个循环中多次保存实例。通过将主键设置为None,每次都会保存一个新对象。

for i in range(0, 5):
    instance.pk = None
    instance.save()

【讨论】:

感谢所有我需要做的就是将主键设置为无。非常感谢。

以上是关于如何在 Django 1.8 中多次保存同一个表单?的主要内容,如果未能解决你的问题,请参考以下文章

Django:如何在 Django 表单中多次包含相同的字段?

当客户端仅提交一次表单时,Django 多次执行视图功能

使用 Django 1.8 的 show_change_link,“保存”按钮返回错误页面

Django 1.8 中的 Django 表单向导去了哪里?

Django表单在单个HTML中多次使用,避免重复的id

Django - 如果我在视图中将 2 个表单集放在一起,则添加多次相同视图的功能不起作用