new.html
{{ form.particular(name='particular[]') }}
我尝试了上面的代码在我的输入字段中分配一个名称,但我得到了一个以下错误。但是,如果我添加一个类或id来替换名称(例如:{{ form.particular(id='particulars') }} ),它可以工作,但不能用于名称,只会输出以下错误:
builtins.TypeError
名称: html_params()为关键字参数‘TypeError’获取了多个值
任何解决方案。提前感谢您:)
发布于 2018-08-01 05:48:14
定义表单时:
class WebForm(FlaskForm):
particular = StringField('some_description')
然后你有一个字段,它的name=particular
,这是wtforms的底层函数。因此,由于您不能在jinja2模板中重新定义名称,因此当您尝试执行form.particular(name='particular[]')
时,它会给出多值错误。
您可以使用以下两种方法之一覆盖名称(请注意,在jinja2呈现发生之前,这两种方法都是服务器端的):
1)静态:即定义一个新名称:
class WebForm(FlaskForm):
particular_new = StringField('some_description')
2)动态:即,wrap函数创建修改后的静态形式:
def WebForm(new_name):
class TempForm(FlaskForm):
pass
setattr(TempForm, new_name, StringField('some_description'))
return TempForm()
# will create a WebForm with attribute name of 'new_name' as StringField
发布于 2018-08-01 02:57:53
如果它通过render template发送表单数据,则只需将变量名称放在模板中的{{ var_name }}之间,并在代码中使用返回render template函数中的此var_name。
https://stackoverflow.com/questions/51619855
复制相似问题