2017-12-03 13 views
0

コードはわかりやすく、後で使用するために変数FlaskFormに渡したいと思います。FlaskForm(WTForms)内の変数に渡して使用する

from flask import Flask, render_template_string 
from flask_wtf import FlaskForm 
from wtforms import StringField 
from flask_wtf.csrf import CSRFProtect 


app = Flask(__name__) 
spam = 'bar' 
app.secret_key = 'secret' 
csrf = CSRFProtect(app) 

@app.route('/') 
def index(): 
    eggs = spam 
    form = FooForm(eggs) 
    return render_template_string(
    ''' 
    {{ form.bar_field.label }} {{ form.bar_field }} 
    ''',form = form) 

class FooForm(FlaskForm): 
    def __init__(self, bar): 
     super(FooForm, self).__init__() 
     self.bar = bar 
    bar_field = StringField("Label's last word is 'bar': {0}".format(self.bar)) 

if __name__ == '__main__': 
    app.run(debug=True) 

は私の代わりに希望私は達成するにはどうすればよい

line 22, in FooForm 
    bar_field = StringField("Label's last word is 'bar': {0}".format(self.bar)) 
NameError: name 'self' is not defined 

あるものを手に入れますか?

答えて

0

bar_field = StringField("Label's last word is 'bar': {0}".format(self.bar))()メソッドに入れます。 これを使用:

class FooForm(FlaskForm): 
def __init__(self, bar): 
    super(FooForm, self).__init__() 
    self.bar = bar 
    self.bar_field = StringField("Label's last word is 'bar': {0}".format(self.bar)) 
+0

これは私が達成したいものではありません。私はFlaskFormのbar_fieldを望んでいない、私は私のFooFormのbar_fieldをしたい。 – user8491711

+0

あなた自身であなたの提案を試みたことがありますか? 'jinja2.exceptions.UndefinedError: '__main __。FooFormオブジェクト'には属性 'bar_field'がありません ' – user8491711

+0

'次に' self.bar_field = StringField .... 'を入れます。 –

関連する問題