2016-09-07 8 views
0

Я пытаюсь создать приложение с флягой с WTForms.Флакон не принимает вход WTForms

В controller.py я есть:

@mod_private.route('/portfolio/', methods=['GET', 'POST']) 
@login_required 
def portfolio(): 
    print "in portfolio" # I read this 
    form = CreateCoinsForm(request.form) 
    if request.method == 'POST' and form.validate_on_submit(): 
     print form.coins.data #I cannot take this value 
     return render_template("private/portfolio.html",form=form) 
    return render_template("private/portfolio.html",form=form) 

в forms.py:

class CreateCoinsForm(Form): 
    coins = IntegerField('coins', 
         [DataRequired('num required'), 
         NumberRange(min=0, max=10)]) 

и шаблон

<form method="post" action="/private/portfolio/" accept-charset="UTF-8" role="form"> 
      <p> {{ form.coins }}</p> 
     <p><input type=submit value=Generate> 
    </form> 

моя проблема, как я писал в что я не могу получить строку, вставленную в шаблон.

ответ

2

Ваша проблема заключается в том, что вы используете встроенную защиту CSRF в своей форме, и ваша форма фактически не проверяется, потому что вы не включили токен CSRF.

Попробуйте изменить шаблон следующим образом:

<form method="post" action="/private/portfolio/" accept-charset="UTF-8" role="form"> 
    {{ form.hidden_tag() }} 
      <p> {{ form.coins }}</p> 
     <p><input type=submit value=Generate> 
    </form> 
Смежные вопросы