Dynamic default value setting for a flask form field

pogo picture pogo · Nov 5, 2015 · Viewed 12.8k times · Source

I am trying to set the default value for a string field in flask wtforms. The following is my code and it doesn't work.

Code:

from flask.ext.wtf import Form
from wtforms import StringField
class TestForm(Form):
     test = StringField('Test field')

@app.route('display/')
def display():
    dynamicvalue = getdynamicvalue()
    return render_template('test.html', form = form, defname = dynamicvalue)

test.html:

<div class="controls">
  {{ form.test(size=80, readonly="readonly", value={{defname}} }}
</div>

How do I correct this?

The following is the error

{{form.test(size=80, readonly= "readonly", value={{defname}}  }}
TemplateSyntaxError: expected token ':', got '}'

Answer

r-m-n picture r-m-n · Nov 5, 2015

you should use one pair of {{ }} brackets in template

<div class="controls">
  {{ form.test(size=80, readonly="readonly", value=defname) }}
</div>