А правильно я понимаю, что после успешной отправки формы form.validate_on_submit или после request.method == POST flask опять их перезаполняет, значениями, которые были отправлены?
def index(): form = Form() if form.validate_on_submit(): do_something() return render_template('add.html', form=form)
def index(): #request.form передается по дефолту, но я укажу его явно для наглядности form = Form(formdata=request.form) # Примерно такой код находится в validate_on_submit if request.method = "POST" and form.validate(): do_something() return render_template('add.html', form=form)
def freeform(): form = FreeForm() n = request.args.get("n") if n == None: if form.validate_on_submit(): a = form.nomer1.data flash("Отправили %s и прибавили единицу в форму" % (a)) a += 1 return redirect ("/freeform?n="+str(a)) else: flash_errors(form) else: form.nomer1.data = int(n) if form.validate_on_submit(): a = form.nomer1.data flash("Отправили %s и прибавили единицу в форму" % (a)) a += 1 return redirect ("/freeform?n="+str(a)) else: flash_errors(form) return render_template ("/freeform/fform.html", form = form)
boligolov
plusplusТ.е. если отправляю форму и хочу прибавить единицу после успешной отправки в одном из полей я могу сделать так:
def index(): form = Form() if form.validate_on_submit(): form.field.data += 1 do_something() return render_template('add.html', form=form)