在Python Flask WTForms中,如何创建对另一个字段的依赖关系

2024-10-01 00:21:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个source字段:

source = SelectField("Source", choices=[
                   ('option1', 'option1'),
                   ('option2', 'option2'),
                   ('option2', 'option2'),
               validators=[InputRequired()])

然后是一个uri字段,它需要基于上述内容的不同正则表达式:

^{pr2}$

例如,如果选择option1,regex将是regex1,如果option2regex2,依此类推。在

用WTForms实现它的正确方法是什么?在


Tags: source内容uriwtformsregexchoicesvalidatorsoption1
1条回答
网友
1楼 · 发布于 2024-10-01 00:21:18

WTForms中不存在此功能。你得自己动手。这很快就会变得非常重要,这取决于您特定的应用程序逻辑/需求。在

一种方法是让客户端JS向动态生成新表单的视图发送请求,并根据输入添加表单的后续部分。例如,您的字段可以有一个onChangeonBlur函数,该函数将输入发送到一个视图,该视图返回一个添加了下一组字段的新表单。在

另一种方法是使用一些巧妙的表单呈现,CSS和JS。例如,表单将使用所有可能的字段呈现,但是这些字段将根据之前通过JS/CSS的选择被隐藏和显示。这种方法的一个问题是验证变得复杂。在

有一些writeups介绍了如何使用Django表单实现这一点,但没有使用WTForms。不过,同样的概念应该很容易适用于WTForms。在

相关文档:dynamic form composition。在

相关问题 更多 >