使用wtforms我正在尝试格式化以下表单。所以我有工作但我不需要'FormField'包含的html表 - 所以如何绕过/覆盖它?
class WeekdayHoursForm(BaseForm):
hours = [(str(x+1), str(x+1)) for x in range(12)]
mins=[('00',':00'),('15',':15'),('30',':30'),('45',':45')]
fromHour = SelectField('',choices=hours)
fromMin = SelectField('',choices=mins)
toHour = SelectField('',choices=hours)
toMin = SelectField('',choices=mins)
closed = BooleanField('Closed','0')
class AddListingForm(BaseForm):
monday = FormField(WeekdayHoursForm)
tuesday = FormField(WeekdayHoursForm)
etc...
我的观点
<div class="wrapper-block weekday" id="mon">
{{ form.monday.label }} {{ form.monday() }}
</div>
<div class="wrapper-block weekday" id="tues">
{{ form.tuesday.label }} {{ form.tuesday() }}
</div>
我省略了生成的HTML,但我可以在需要时将其粘贴 - 我知道wtforms FormField使用'TableWidget',但我不知道将其设置为'with_table_tag = False'
的位置?
答案 0 :(得分:1)
每个wtforms.fields.Field
子类都使用一个名为widget
的关键字参数,该参数可用于覆盖字段的呈现。您可以阅读有关可用的WTForms小部件in their docs的更多信息。
如果您只想使用列表而不是表格,可以使用内置的ListWidget:
# ... snip ...
class AddListingForm(BaseForm):
monday = FormField(WeekdayHoursForm, widget=ListWidget)
tuesday = FormField(WeekdayHoursForm, widget=ListWidget)