【问题标题】:Dynamically Delete inline formsets in Django在 Django 中动态删除内联表单集
【发布时间】:2011-01-22 08:36:49
【问题描述】:

是否可以让 Django 自动删除请求中不存在的表单集?

因此,例如,如果我在加载编辑页面时有三个用 HTML 表示的内联表单集,并且当请求是进程时我使用 javascript 删除其中两个,Django 看到这两个表单不再是它们并删除它们。

【问题讨论】:

    标签: django django-forms


    【解决方案1】:

    是的,可以使用几种不同的方法。

    首先是复制它在 Django 管理应用程序中完成的方式,即有一个带有类似于“删除?”标签的复选框。然后,当您稍后在 POST 请求中处理表单集时,检查复选框是否为 True,如果是,则删除记录。这可能不是您想要的,因为您在问题标题中使用了“动态”一词:)

    因此,第二种动态方法是使用 Javascript 来“隐藏”页面上已删除的记录,并将删除复选框设置为 True。然后以与上述第一个选项相同的方式处理表单集。有关以这种方式删除表单集的代码,请参见 django-dynamic-formset

    第三种动态方式是使用 Ajax,当单击删除按钮时,让 JS 调用删除视图来删除记录并从 HTML 中删除表单集。我无法为您指出任何示例代码,但我认为上面的第二种方法更好,因为您可以将所有身份验证和标准表单验证代码保存在一个地方。

    【讨论】:

      猜你喜欢
      • 2013-08-19
      • 1970-01-01
      • 2018-03-08
      • 2012-09-07
      • 1970-01-01
      • 2010-10-08
      • 1970-01-01
      • 2018-08-31
      • 1970-01-01
      相关资源
      最近更新 更多