我正在编写一个函数来更新Django中三个可能的字段之一——布尔值、字符串或整数
我试图这样做:
class AccountsForm(forms.Form):
update_key = forms.CharField(required=True)
update_value = forms.ComboField(fields=[forms.CharField(),
forms.IntegerField(), forms.BooleanField()],
required=True)
但这不是我想要的功能,因为它需要CharField+IntegerField+BooleanField的组合。我需要在表单中正好出现三个字段中的一个。django表单可以这样做吗
有。Django docs实际上向您展示了如何做到这一点:
required=False
)clean()
方法,在其中同时验证这三个字段。如果您第一次调用super().clean()
,您可以确保首先分别验证了字段,例如,IntegerField
的输入实际上是一个整数,因此您不需要再这样做了李>cleaned_data
字典查看每个字段的值。您还可以检查self.errors[<field>]
以查看是否有任何字段填写错误李>ValidationError
李>{{ form.non_field_errors }}
,以便用户知道您引发的错误。或者只需在其中一个字段上添加错误,将其显示在字段附近李>相关问题 更多 >
编程相关推荐