{{=INPUT(_type='text', _name='book_title', _id='book_title')}}
{{if form.vars.book_title:}}
{{book_title_value = form.vars.book_title}}
{{else:}}
{{book_title_value = 'My book title'}}
{{pass}}
{{=INPUT(_type='text', _name='book_title', _id='book_title', _value=book_title_value)}}
def test_name():
form = SQLFORM(db.auth_user)
form.vars.first_name = 'Jan'
if form.process().accepted:
redirect(URL(...))
elif form.errors:
form.custom.widget.first_name.attributes['_value'] = 'Martin'
return dict(form=form)
<div class='form-group'>
{{=LABEL(T(db.events.daily_distance.label), _for='daily_distance')}}:
<div class="input-group">
{{if form_event.vars.daily_distance:}}
{{daily_distance_value = form_event.vars.daily_distance}}
{{else:}}
{{daily_distance_value = '5'}}
{{pass}}
{{=INPUT(_type='text', _name='daily_distance', _id='daily_distance', _class='form-control', _value=daily_distance_value, _onchange='update_data()')}}
<span class='input-group-addon'>
{{=SPAN(T(db.events.daily_distance.comment), _class='comment')}}
</span>
</div>
{{if form_event.errors.daily_distance:}}
<div class="error_wrapper">
<div id="daily_distance__error" class="error" style="display: inline-block;">
{{=form_event.errors.daily_distance}}
</div>
</div>
{{pass}}
</div>
<div class="form-group">
{{=LABEL(T(db.events.daily_distance.label), _for='title')}}:
<div class="input-group">
{{=form_event.custom.widget.daily_distance}}
<span class='input-group-addon'>
{{=SPAN(T(db.events.daily_distance.comment), _class='comment')}}
</span>
</div>
</div>
It's not nice and I don't know how I can say to web2py to add the error-wrapper after the input-group. Do you know that?