没有实例的 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。
如果您在自己的应用程序中执行此操作,则由您决定。创建一个包含新author
和book
字段的表单。当用户提交表单时,您的工作就是创建新记录。
【讨论】:
以上是关于没有实例的 Django Formset的主要内容,如果未能解决你的问题,请参考以下文章
django InlineFormsets错误报告,其中formset错误列表为空
Django BaseGenericInlineFormSet 表单不继承 FormSet 实例作为表单实例related_object