2016-09-07 7 views
0

私はWTFormsのフラスコでアプリを作成しています。 forms.pyでFlaskはWTForms入力を受け取りません

@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) 

::私が持っているcontroller.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> 

はそうのようなテンプレートを調整してみてください

関連する問題