Stavros Anastasiadis
Stavros Anastasiadis

Reputation: 413

WTF Forms (Flask)- FormField - FieldList, Validation don't work

Iam trying to create a ListItem Form using WTF Fields, FormField, FieldList:

forms.py

class WarehouseTicketItemForm(Form):
      description = StringField(u'Description', validators=[Required()])
      quantity = IntegerField(u'Quantity', validators=[Required()])

class WarehouseTicketForm(Form):
      spot_id = SelectField(u'Spot', coerce=int)
      items = FieldList(FormField(WarehouseTicketItemForm), min_entries = 3)

warehouse_ticket_form.html

<form action="" method='POST'>
  {{ form.hidden_tag() }}
  {{ form.spot_id }} <br>
  {% for item in form.items %}
    {{ item }}
  {% endfor %}
 <button type="submit" name="button">Save it</button>

warehouse_tickets.py

@coordinator.route('/warehouses/tickets/update', methods=['GET', 'POST'])
def update_warehouses_tickets():
   page = dict(title="Warehouse Ticket")
   form = WarehouseTicketForm()
   form.spot_id.choices = [(s.id, s.name)
                           for s in Spot.query.filter_by(status=True)]
   if form.validate_on_submit():
       print form.data
   return render_template('coordinators/warehouses/warehouse_ticket_form.html',
                        page=page, form=form)

Submitting the form "print form.data" doesn't return anything ...

I can't figure out that I am missing

Upvotes: 4

Views: 2099

Answers (1)

sanyu
sanyu

Reputation: 39

I would put the validation as a parameter for the items field.

class WarehouseTicketForm(Form):
    spot_id = SelectField(u'Spot', coerce=int)
    items = FieldList(FormField(WarehouseTicketItemForm), min_entries = 3, validators=[Required()])

Upvotes: 1

Related Questions