このコードがStringField
で動作する理由はわかりませんが、HiddenField
では動作しません。問題をデバッグするために変数date2
が追加されました。HiddenFieldが値を返さない
(実は、私はそこにStringFieldを残すことができますが、それは問題を見つけるために私にいくつかの時間を取って、私は間違いを繰り返さないために間違っているかを理解したいと思います)
フォーム定義:
DAYS = 10
class _OneDayForm(Form):
alarmtime = StringField(validators=[Optional(), validate_time])
date2 = StringField() # json encoded [Y,M,D]
date = HiddenField() # json encoded [Y,M,D]
class _PerDayForm(Form):
days = FieldList(FormField(_OneDayForm), min_entries=DAYS)
submit = SubmitField()
Jinja2のテンプレート:
<input name="{{ subform.date.name }}" type="hidden" value="{{ ymd }}">
<input name="{{ subform.date2.name }}" type="hidden" value="{{ ymd }}">
生成されたHTML:
<input name="days-0-date" type="hidden" value="[2016, 12, 7]">
<input name="days-0-date2" type="hidden" value="[2016, 12, 7]">
StringField date2
は値を返しますが、HiddenField date
は戻りません。私はそれらを交換しようとしましたStringField
対HiddenField
が本当に唯一の違いであることを確認してください。