Using wtforms I am trying to format the following form. So I have evrything working but I do not need the html table which ‘FormField’ gets wrapped in – so how to bypass/override that?
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...
My View
<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>
I have omitted the generated HTML but I can paste it in if needed – I am aware wtforms FormField uses a ‘TableWidget’ but I dont know where to set this to 'with_table_tag = False'?
Every
wtforms.fields.Fieldsubclass takes a keyword argument namedwidgetthat can be used to override the rendering of the field. You can read more about the available WTForms widgets in their docs.If you just wanted to use a list rather than a table you could use the built in ListWidget: