我在Jinja2模板中有一个表单。这就是我正在尝试用它做的事情:
最好的方法是什么?
例如,假设我的表单中有<select>
输入,如下所示:
<select id="shift_selected" name="shift_selected">
{% for shift in Shifts %}
<option value="{{ shift }}" {{ 'selected' if shift == selected_shift }}>{{ shift }}</option>
{% endfor %}
</select>
现在,在提交表单后重新呈现页面,
我的处理程序必须解析输入,获取'shift_selected'的值
然后设置'selected_shift'的值。
args ['selected_shift'] = self.request.get(“selectedShift”)
template.render(args)
处理程序实质上接收表单值中的一些数据,并将相同的数据作为模板变量值发回。有一个更好的方法吗。如果用于长形式,这种方法非常繁琐。
答案 0 :(得分:1)
实际上,您甚至可以将request
对象作为参数传递给Jinja模板。或编写一个函数将request
中的所有GET或POST参数复制到Jinja模板参数。
args['request'] = self.request
template.render(args)
<select id="shift_selected" name="shift_selected">
{% for shift in request.get('selectedShift') %}
<option value="{{ shift }}" {{ 'selected' if shift == selected_shift }}>{{ shift }}</option>
{% endfor %}
</select>