繁体   English   中英

更新wtforms中的提交按钮文本

[英]Update text of submit button in wtforms

我有一个表单,将用于新的提交和更新。 我的问题是关于提交按钮的文本。 我想根据具体情况将文本更改为新提交新更新 这纯粹是提供信息的。

class Interview(Form):
    ...
    submit = SubmitField('New submit')  

如果可能的话,我想避免创建一个具有完全相同字段的新类,只是因为提交文本。

使用mixins执行此操作的正确方法:

class InterviewMixin():
    ...

class InterviewSubmit(Form, InterviewMixin):
    submit = SubmitField('New submit')

class InterviewUpdate(Form, InterviewMixin):
    submit = SubmitField('New update')

老问题,但对于遇到此问题的其他人来说,另一种方法是在呈现模板之前从代码中设置它:

if is_submit:
    form.submit.label.text = 'New submit'
else:
    form.submit.label.text = 'New update'

return render_template(...)

我已经通过不在表单定义中包含提交按钮来解决问题,而是根据我想要的标签在HTML中添加提交按钮。

{% if pagetitle == 'Update' %}
   <p><input type="submit" name="btn" value="New Update"></p>
{% endif %}
{% if pagetitle == 'Submit' %}
   <p><input type="submit" name="btn" value="New Submit"></p>
{% endif %}

使用这种方式,您可以使用相同的表单,并在按钮上具有不同的标签,具体取决于应使用哪个。

如果需要,可以使用相同的变量来设置表单的操作,如果需要指向不同的视图。

或者您可以使用视图中按钮的值。

if flask.request.form['btn'] == 'New Update':
   ...
elif flask.request.form['btn'] == 'New Submit':
   ...

正确的方法是制作两个表单并检查在服务器端按下了哪个提交按钮。

if submit_form.validate_on_submit() and submit_form.any_field.data:
        print "submit_form submit button is Pressed"
elif update_form.validate_on_submit() and update_form.any_field.data:
        print "update_form submit button is submitted"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM