我现在正在使用python和jinja2。 有没有办法在不使用会话提交数据的情况下保留表单中的数据(通过验证)? 因为在我的情况下,我必须在我的模板(视图)中操作它几次。甚至在我的控制器部分。任何人都可以教一种更简单的方法。
以下是我的工作:
<input name="address" type="text" value="{% if form.data != '' and form.data and form and form != '' %}{% if form.data.address%}{{form.data.address}}{% else %}{{address}}{% endif %}{% elif form.data != '' and not form.data and form and form != '' %}{{address}}{% else %}{{address}}{% endif %}" disabled/>
我通过form.encode验证,因此它在视图(控制器)中验证。
我知道它有点长。但我能够保留数据,即使我的表单未经过验证。但这是一种错误的方式。希望有人可以教我一个更简单的方法。想象一下,上面的代码是为几个文本框编写的。这将是一个艰难的时期。
感谢您的时间。
答案 0 :(得分:0)
您可以使用隐藏的字段。
<input type="hidden" name="address" value="{{form.data.address}}" />
无论如何,检查价值条件,是多余的:
{% set value = '' %}
{% if form.data != '' and form.data and form and form != '' %}
{% if form.data.address %}
{% set value = form.data.address %}
{% else %}
{% set value = address %}
{% endif %}
{% elif form.data != '' and not form.data and form and form != '' %}
{% set value = address %}
{% else %}
{% set value = address %}
{% endif %}