我有一个source
字段:
source = SelectField("Source", choices=[
('option1', 'option1'),
('option2', 'option2'),
('option2', 'option2'),
validators=[InputRequired()])
然后是一个uri
字段,它需要基于上述内容的不同正则表达式:
例如,如果选择option1
,regex将是regex1
,如果option2
regex2
,依此类推。在
用WTForms实现它的正确方法是什么?在
WTForms中不存在此功能。你得自己动手。这很快就会变得非常重要,这取决于您特定的应用程序逻辑/需求。在
一种方法是让客户端JS向动态生成新表单的视图发送请求,并根据输入添加表单的后续部分。例如,您的字段可以有一个
onChange
或onBlur
函数,该函数将输入发送到一个视图,该视图返回一个添加了下一组字段的新表单。在另一种方法是使用一些巧妙的表单呈现,CSS和JS。例如,表单将使用所有可能的字段呈现,但是这些字段将根据之前通过JS/CSS的选择被隐藏和显示。这种方法的一个问题是验证变得复杂。在
有一些writeups介绍了如何使用Django表单实现这一点,但没有使用WTForms。不过,同样的概念应该很容易适用于WTForms。在
相关文档:dynamic form composition。在
相关问题 更多 >
编程相关推荐