【发布时间】:2015-10-29 19:31:02
【问题描述】:
我已经阅读了很多关于如何在 Django 中动态地将表单添加到模型表单集中的答案,并且可以成功地实现它。但是,我现在想用 AJAX 提交表单集。这现在大部分都在工作,但我有一个问题在任何其他答案中都找不到解决方案:
如果您动态地将一个表单添加到表单集,则您给它一个新的表单 ID 编号,该编号比该表单当前拥有的最大值大一,并且您还将管理 TOTAL_FORMS 计数增加一。然后新添加的表单成功保存为新对象。
我正在尝试通过 AJAX 提交,以便用户无需刷新页面即可继续编辑。表单集保存得很好,但任何动态添加的表单现在都是现有对象。为了解决这个问题,我需要在保存成功时增加管理表单上的 INITIAL_FORMS 计数。很容易。但是,我也意识到我需要给新创建的对象一个 ID,因为它们现在存在于数据库中。
如何让我的视图在它对 AJAX 调用的响应中告诉我新对象的 ID?或者有没有更好的方法来看待这个?
【问题讨论】:
-
但是,如果我的想法是错误的,请告诉我,如果您使用 AJAX,则不需要表单集,因为您只提交一个表单.. 现在阅读整个问题。我问你的问题,你的观点是什么?我会做到
JSON? -
感谢您的回复,但我认为这不能解决我的问题。它只是向表单集添加了一个新表单吗?
-
是视图返回 JSON。目前它只是返回一小段代码来确认验证是否成功,或者返回一个适用于表单的错误数组。
-
直截了当,您希望:1) 使用一些 javascript 动态添加和删除项目,以及 2) 使用 AJAX 一次保存所有项目,然后继续编辑项目列表。正确的?所以你的问题是确保新添加的项目不会在用户第二次推送保存时再次添加?
标签: ajax django django-forms