有一个非常类似的问题,但我想用一种不同的方式来问它。
我是一个非常定制化的人,但我确实喜欢走捷径。这就是问题所在。
我确实发现这两个类非常相似,尽管一个类“帮助”程序员更快地编写代码,或者减少代码/重复代码。将模型连接到表单听起来像是一件显而易见的事情。在使用ModelForm的文档中,有一件事不是特别清楚。如果需要添加不在模型中或以某种方式连接到另一个模型的额外字段,会发生什么情况?
我猜您可以将其子类化并使其工作,但这真的比仅仅使用表单手动操作更能帮助您节省时间吗?
因此,如果我将下一个问题子类化,并使用ModelForm,下一个问题可能没有明确的答案。ModelForm比Form特别快吗?它是否仍然使用相同的更新技术,或者在其中一个中绑定的速度要快得多?
发布于 2010-10-10 11:08:58
如果你想要一个跨越两个模型的表单,你有几个选择:
1)创建两个模型表单,在发布时分别保存,如果其中一个依赖于另一个(即外键),则在保存之前在视图中进行设置。
2)尝试Django的内联表单集:http://docs.djangoproject.com/en/dev/topics/forms/modelforms/#using-an-inline-formset-in-a-view
3)将非模型字段添加到模型表单中。在ModelForm上,您可以添加未绑定到模型的字段。与任何其他字段一样,它们在cleaned_data中可用,但在保存模型时会被忽略。
与表单相比,ModelForm的一个优点是您可以指定字段的排序(顺便搜索一下如何对帖子中的表单字段进行排序)。显而易见的其他优点是,您不必重写模型保存代码
https://stackoverflow.com/questions/3828025
复制相似问题