相关疑难解决方法(0)

确定在Flask视图中按下了哪个WTForms按钮

我有一个带有多个链接的页面,可以将用户重定向到不同的页面.我认为使用表单会更好,所以我定义了一个Form具有多个的WTForms SubmitFields.如何确定单击了哪个按钮并根据该按钮进行重定向?

class MainForm(Form):
    user_stats = SubmitField('User Stats')
    room_stats = SubmitField('Room Stats')

@main.route('/')
@login_required
def index():
    form = MainForm()    
    return render_template('index.html', form=form)
Run Code Online (Sandbox Code Playgroud)
<form action="#" method="post">
    {{ wtf.quick_form(form) }}
</form>
Run Code Online (Sandbox Code Playgroud)

python flask wtforms flask-wtforms

4
推荐指数
1
解决办法
4774
查看次数

根据单击的按钮验证 WTForm 表单

在我的表单上,我有两个按钮用于提交表单。一个按钮删除选定的文件(显示在表格中,一个复选框用于对象),另一个按钮选择它们进行处理。

当文件在删除时被选择时,不需要验证(除了检查是否至少选择了一个文件)。但是,为了进行处理,我需要确保只有一个具有特定扩展名的文件。基本上,我需要根据用户单击的按钮进行不同的验证过程。

我怎样才能最好地做到这一点?我知道我可以在视图中执行验证,但我更喜欢在表单内验证它,因为它更干净。

这是有问题的表格:

class ButtonWidget(object):
    """A widget to conveniently display buttons.
    """
    def __call__(self, field, **kwargs):
        if field.name is not None:
            kwargs.setdefault('name', field.name)
        if field.value is not None:
            kwargs.setdefault('value', field.value)
        kwargs.setdefault('type', "submit")
        return HTMLString('<button %s>%s</button>' % (
            html_params(**kwargs),
            escape(field._value())
            ))

class ButtonField(Field):
    """A field to conveniently use buttons in flask forms.
    """
    widget = ButtonWidget()

    def __init__(self, text=None, name=None, value=None, **kwargs):
        super(ButtonField, self).__init__(**kwargs)
        self.text = text
        self.value = value
        if name is not None:
            self.name = name

    def …
Run Code Online (Sandbox Code Playgroud)

python flask wtforms flask-wtforms

3
推荐指数
1
解决办法
5159
查看次数

标签 统计

flask ×2

flask-wtforms ×2

python ×2

wtforms ×2