首页 > 解决方案 > 如何使 WTForms 中的两个 FormField 中的至少一个成为必需的?

问题描述

我有一个包含两个带地址的 FormField 的表单。我想确保正确填写这两个中的至少一个。如果我在仅填写其中一个时将子表单的所有相关字段都设为必填,它将始终无法通过验证。

class AddressForm(FlaskForm):
    firstname = StringField('Vorname', validators=[InputRequired())
    lastname  = StringField('Nachname', validators=[InputRequired())
    ...

class Registration(FlaskForm):
    use_address_1 = RadioField('use existing address', default='Yes') # which address should be used
    address1      = FormField(AddressForm) # first address e.g. a pre-filled one
    address2      = FormField(AddressForm) # second address if use_address_1 is False
    ...

在(Flask-)WTForms 中实现这一点的最佳实践是什么?理想情况下,这将是可以实现到父类 AddressForm 的东西,因此它会寻找 use_address_1 的存在或具有第二个地址的父表单。

标签: flaskflask-wtformswtforms

解决方案


推荐阅读