Я создаю веб-приложение на Flask, и на странице у меня есть несколько форм, когда я нажимаю кнопку отправки для одной формы (называемой «UsedBatch»), она в конечном итоге отправляет его, как будто это другая форма (та, которая называется NewBatch), и я не понимаю, почему. Определения форм показаны ниже:
class NewBatch(FlaskForm):
quantity = IntegerField('Number of items:', validators=[DataRequired()])
date = DateField('Date:', default = date.today(), validators=[DataRequired()])
submit = SubmitField('Submit')
class UsedBatch(FlaskForm):
quantity = IntegerField('Number of items used:', validators=[DataRequired()])
date = DateField('Date:', default = date.today(), validators=[DataRequired()])
used_by = StringField('Used by:')
submit = SubmitField('Submit')
Прежде чем они пройдут через шаблон, добавляются некоторые атрибуты форм, а затем они определяются, как показано:
for items in items_list:
setattr(NewBatch, 'item_no', IntegerField(default = items.item_no))
setattr(UsedBatch, 'item_no', IntegerField(default = items.item_no))
processed_items_list.append({'item_no':items.item_no, 'quantity':items.quantity, 'items':items.items, 'batch_form':NewBatch(), 'used_form':UsedBatch()})
used_form = UsedBatch()
batch_form = NewBatch()
И наконец, код для форм в шаблоне показан ниже, я перебираю список («процессыd_items_list», показанный выше_, где каждый элемент в списке имеет прикрепленную форму, итерация в этом случае называется items. первая форма ( значение «Используемая партия»:
<form method="POST">
{{ items['used_form'].date.label }}{{ items['used_form'].date(class="uk-input") }}
{{ items['used_form'].quantity.label }}{{ items['used_form'].quantity(class="uk-input") }}
{{ items['used_form'].used_by.label }}{{ items['used_form'].used_by(class="uk-input") }}
{{ items['used_form'].hidden_tag.label }}{{ items['used_form'].hidden_tag() }}
{{ items['used_form'].submit() }}
</form>
, а вторая форма (NewBatch):
<form method="POST">
{{ items['batch_form'].date.label }}{{ items['batch_form'].date(class="uk-input") }}
{{ items['batch_form'].quantity.label }}{{ items['batch_form'].quantity(class="uk-input") }}
{{ items['batch_form'].hidden_tag.label }}{{ items['batch_form'].hidden_tag() }}
{{ items['batch_form'].submit() }}
</form>
Кто-нибудь может понять, почему он отправляет NewBatch поверх UsedBatch? Когда я просто добавляю строки :
if batch_form.validate_on_submit():
print('Batch submitted')
if used_form.validate_on_submit():
print('Usage submitted')
При отправке формы UsedBatch возвращается «Отправлено», а не «Использовано отправлено». Кто-нибудь может помочь указать, почему? Спасибо!