Дублирование полей формы и обработка в колбе - PullRequest
0 голосов
/ 10 мая 2019

У меня есть форма заказа.Вместо того, чтобы обрабатывать один заказ за раз, я хочу дублировать форму и обрабатывать все формы одновременно.Я пробовал FormField, но не смог его обработать.

class OrderForm(Form):
    date = DateField('Date',validators=[DataRequired()])
    code = StringField('Order Code',validators=[DataRequired()])
    item = QuerySelectField('Item',query_factory=items,get_label='code', allow_blank=False,validators=[DataRequired()])
    season = QuerySelectField('Season',query_factory=seasons,get_label='code', allow_blank=False,validators=[DataRequired()])
    qty = IntegerField('Quantity',validators=[DataRequired()])
    unit = QuerySelectField('Units',query_factory=units,get_label='code', allow_blank=False,validators=[DataRequired()])
    customer = QuerySelectField('Customer',query_factory=customers,get_label='name', allow_blank=False,validators=[DataRequired()])

Я пробовал это поле формы, но не смог его обработать

class ItemForm(Form):
    sample_item = FormField(OrderForm)

мой взгляд:

def sample_order_details(pk):
    title = "Sample Order Details"
    if 'email' in session:
        user = Admin.query.filter_by(email=session['email']).first()
        order = SampleOrder.query.filter_by(code=pk).first()
        items = SampleOrderItem.query.filter_by(order_code=pk).all()
        if user is not None:
            form = OrderForm(order_code=pk)
            if request.method == 'POST':
                if form.validate() == False:
                    return render_template('order/sample_order_details.html',
                                           name=sample_order_details,
                                           user=user,
                                           title=title,
                                           form=form,
                                           order=order,
                                           items=items
                                           )
                else:
                    newsampleitem = SampleOrderItem(
                        form.item_code.data,
                        form.season_code.data,
                        form.qty.data,
                        form.unit_code.data,
                        form.order_code.data,
                    )
                    db.session.add(newsampleitem)
                    db.session.commit()
                    print(newsampleitem)
                    code = form.order_code.data
                    return redirect(url_for('order.sample_order_details', pk=code))
            else:
                return render_template('order/sample_order_details.html',
                                       name=sample_order_details,
                                       form=form,
                                       title=title,
                                       user=user,
                                       order=order,
                                       items=items
                                       )
        else:
            return redirect('index')
    else:
        return redirect('admin.login')
...