单一形式,多种型号,使用第三方应用程序

时间:2013-06-10 19:41:44

标签: django django-forms django-views

我希望使用两种形式,并以某种方式将它们组合在一个视图中进行验证,因此用户只需使用一个提交按钮。我是Django的新手,我正在使用第三方应用程序,因此它使某些事情复杂化。第三方应用程序提供forms.pymodels.pyviews.py以及模板。将这个提供的表单与我自己的表单集成并有一个提交按钮的最佳方法是什么?

forms.py

class ThirdPartyFormOverwrite(ThirdPartyForm):
    tpfield1 = ...
    tpfield2 = ...

class MyCustomForm(forms.Form):
    mcfield1 = ...
    mcfield2 = ...

所以在ThirdPartyFormOverwrite类中,我继承了第三方应用程序提供给我的表单,并添加了一些字段。这是有效的,但我不知道如果我应该继续这样做(覆盖)views.py。有没有一种很好的方法来整合这两种形式而不会覆盖第三方应用程序给我的所有内容?

1 个答案:

答案 0 :(得分:0)

如果你的两个表单不需要引用彼此的数据来验证,你可以在视图中实例化它们,使用prefix参数至少其中一个来保持它们不同。

third_party_form = ThirdPartyForm()
my_form = MyCustomForm(prefix="my_form")

然后确保将它们都添加到上下文中并在模板中的同一<form>标记中进行渲染。

如果你确实需要从一个表单中引用数据来验证另一个表单,那么继承听起来像是找我的方式。