没有实例的 Django Formset

Posted

技术标签:

【中文标题】没有实例的 Django Formset【英文标题】:Django Formset without instance 【发布时间】:2010-11-19 01:30:39 【问题描述】:

在thisDjango Doc 中解释了如何创建一个表单集,允许您编辑属于特定作者的书籍。

我想做的是:创建一个表单集,允许您添加属于新作者的新书...在同一个表单集中添加图书及其作者。

你能给个灯吗?谢谢。

【问题讨论】:

【参考方案1】:

当您为初始显示实例化表单和表单集时,您不需要提供实例 - 因此您只会得到空白表单。

当你在 POST 上传入数据时,你可以先做表单,保存它,然后获取一个实例。然后您可以将该实例传递到表单集中,以便它正确保存相关对象。

【讨论】:

谢谢,灯:如果 request.method == "POST": bookform = BookForm(request.POST) b = bookform .save(commit=False) b.save() formset = PadreFormSet(request .POST, request.FILES, instance=b) if formset.is_valid(): formset.save() 它对我有用,谢谢!【参考方案2】:

这取决于您是自己做,还是使用内置管理器。

如果您使用的是管理员,则可以使用inlines。

如果您在自己的应用程序中执行此操作,则由您决定。创建一个包含新authorbook 字段的表单。当用户提交表单时,您的工作就是创建新记录。

【讨论】:

以上是关于没有实例的 Django Formset的主要内容,如果未能解决你的问题,请参考以下文章

django InlineFormsets错误报告,其中formset错误列表为空

Django BaseGenericInlineFormSet 表单不继承 FormSet 实例作为表单实例related_object

访问django formset数据

django formset 未验证,因为需要 ID

django 如何用formset 显示数据库里的经过 过滤的数据?用户资料和修改资料?

与 django-dynamic-formset 一起使用的 Django Formset 不显示删除链接