1

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 を省略しましたが、必要に応じて貼り付けることができ'with_table_tag = False'ます。

4

1 に答える 1

1

すべてのサブクラスは、フィールドのレンダリングをオーバーライドするために使用できるwtforms.fields.Fieldという名前のキーワード引数を取ります。widget利用可能なWTFormsウィジェットの詳細については、ドキュメントをご覧ください。

テーブルではなくリストを使用したい場合は、組み込みのListWidgetを使用できます。

# ... snip ...
class AddListingForm(BaseForm):
   monday    = FormField(WeekdayHoursForm, widget=ListWidget)
   tuesday   = FormField(WeekdayHoursForm, widget=ListWidget)
于 2012-07-18T15:18:54.743 に答える