我的表单模型定义如下:
from com.example.cms.forms import FieldList as MyAppFieldList
from flask_wtf import Form
from wtforms import fields
from wtforms import validators
class FacebookPostTranslationForm(Form):
language = fields.StringField('Language', [validators.InputRequired(), validators.Length(min=2, max=2)])
title = fields.TextAreaField('Title', [validators.InputRequired()])
description = fields.TextAreaField('Description', [validators.InputRequired()])
linkUrl = fields.StringField('Link', [validators.InputRequired(), validators.URL()])
pictureUrl = fields.StringField('Picture', [validators.InputRequired(), validators.URL()])
class FacebookPostTemplateForm(Form):
name = fields.StringField('Name', [validators.InputRequired()])
title = fields.TextAreaField('Title', [validators.InputRequired()])
description = fields.TextAreaField('Description', [validators.InputRequired()])
linkUrl = fields.StringField('Link', [validators.InputRequired(), validators.URL()])
pictureUrl = fields.StringField('Picture', [validators.InputRequired(), validators.URL()])
translations = MyAppFieldList(fields.FormField(FacebookPostTranslationForm), [validators.Optional()])
class FacebookPostTemplateCreateForm(FacebookPostTemplateForm):
pass
class FacebookPostTemplateUpdateForm(FacebookPostTemplateForm):
pass
然后在HTML模板中我有:
^{pr2}$除了翻译.说明渲染良好。也就是说,这条线引发了问题:
{{ render_field(translation.description, rows=5) }}
如果我用title替换description,效果很好(尽管它渲染title两次,而不是title加上description)。在
使用描述时,我得到以下错误:
{{ field.label(class="control-label") }}
UndefinedError: 'unicode object' has no attribute 'label'
在以以下内容开头的宏中:
{% macro render_field(field) %}
<div class="control-group {% if field.errors %}error{% endif %}">
{{ field.label(class="control-label") }}
我对Python或WTForms还很陌生。description字段名是否有可能导致某些问题/冲突的特殊情况?在
我可以看到数据通过web服务正确地传递到控制器。这个字段的值没有可疑之处。在
要运行的sample code。它是从原始资料中提取出来的,所以在某些地方是一团糟。在
如果更改字段的名称,它将起作用:( 但这意味着我必须在web服务或Python代码中的某个地方更改它。在
谢谢。在
Field
本身有description
kwarg您要做的是添加到
^{pr2}$FormField(Field)
对象中,该对象也有description
在模板中调用}
translation.description
时,WTForms返回的是Field.description
,而不是{希望有帮助:)
相关问题 更多 >
编程相关推荐