Search code examples
pythonflaskjinja2flask-wtforms

Dynamic default value setting for a flask form field


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 '}'

Solution

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

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