我正在创建一个测验生成器应用程序。如何根据使用Django Forms的问题数量动态验证表单。
该应用程序有3种类型的问题。 Fill in the blank
,Multiple choice
和True or False
。
我想验证表单,如果问题类型为Fill in the blank
,则应将其验证为CharField
,如果是True or False
或Multiple choice
,则应将其验证为一个ChoiceField
答案 0 :(得分:1)
使用三个(或更多)输入创建表单:
CharField
为您填写“填空”答案BooleanField
代表你的“对错”答案ChoiceField
或MultipleChoiceField
代表您的“多项选择”答案不应将所有字段标记为必需。现在,您必须传递给表单值确定答案类型的 init ,覆盖表单中的默认 init 以将该值保存在表单对象中供以后使用,并且对于每个字段,您应该使clean_field
方法(其中字段是您的字段的名称)只有在您的答案类型值与该字段匹配时才会执行验证。