【问题标题】:retain data in form even after submitting or error in validation即使在提交或验证错误后仍保留表单中的数据
【发布时间】:2013-05-25 17:36:47
【问题描述】:

我目前正在研究 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 验证,所以它在视图(控制器)中验证。

我知道它有点长。但我能够保留数据,即使我的表格没有经过验证。但这是错误的方式。希望有人可以教我一个更简单的捷径。想象一下上面的代码是为几个文本框编写的。这将是一段艰难的时期。

感谢您的时间。

【问题讨论】:

  • 您是在使用原始的 WSGI,还是在使用带有 Jinja2 的 Python Web 框架? (如果是一个框架,是哪一个)?
  • 我正在使用python金字塔作为框架。

标签: python forms validation pyramid jinja2


【解决方案1】:

您可以使用隐藏字段。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-08
    相关资源
    最近更新 更多