更新wtforms中的提交按钮文本

use*_*084 7 python flask wtforms flask-wtforms

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

class Interview(Form):
    ...
    submit = SubmitField('New submit')  
Run Code Online (Sandbox Code Playgroud)

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

Bar*_*ney 12

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

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

return render_template(...)
Run Code Online (Sandbox Code Playgroud)


nat*_*ill 7

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

class InterviewMixin():
    ...

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

class InterviewUpdate(Form, InterviewMixin):
    submit = SubmitField('New update')
Run Code Online (Sandbox Code Playgroud)