4

我想更改(默认为“提交”)的name属性。SubmitField我尝试了什么:

from flask.ext.wtf import Form, SubmitField

class BaseForm(Form):
    submit = SubmitField('Create', id='submit_button', name='submit_button')  #1
    submit = SubmitField('Create', id='submit_button', _name='submit_button')  #2

    def __init__(self, edit=None, *args, **kwargs):
        self.submit.kwargs['name'] = 'submit_button'   #5
        self.submit.kwargs['_name'] = 'submit_button'   #6

他们都因不同的错误而失败。如果我删除name_name参数一切正常。我发现该name属性已通过,flask.ext.wtf.Form但我不知道如何修复它。

注意:我使用的不是简单的表单导入:它是在运行时导入的,在视图的方法内部,而不是在文件的顶部。由于技术问题,我不能也不会更改它。即,如果我在 IDLE 中复制粘贴我的代码,它工作正常。但是,如果我在portMethodView 的方法中导入此代码,则会失败。

4

2 回答 2

3

更改名称最简单的方法是更改​​字段的名称:

class BaseForm(Form):
    # This one's name will be submit_button
    submit_button = SubmitField('Create')
    # This one's name will be another_button
    another_button = SubmitField('Do Stuff')
于 2013-10-25T15:56:49.637 回答
2

您是否看过使用自定义构造函数扩展 SubmitField 本身。在此处查看示例

基本上你会做类似的事情:

class CustomSubmitField(SubmitField):
    def __init__(self, label='', validators=None,_name='',**kwargs):
        super(SubmitField, self).__init__(label, validators, **kwargs)
        custom_name = "whatever"
        self._name = custom_name
于 2013-10-25T13:34:44.120 回答