0

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

表格.py

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

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

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

4

1 回答 1

0

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

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

然后只需确保将它们都添加到上下文中并<form>在模板中的同一标记中呈现它们。

如果您确实需要从一个表单中引用数据来验证另一个表单,那么继承听起来就是我的最佳选择。

于 2013-06-10T19:47:29.613 回答