2013-05-25 173 views
0

我現在正在進入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

是否使用原料WSGI,或您使用與Jinja2的一些Python的Web框架? (如果一個框架,哪一個)? –

+0

我使用python金字塔作爲框架。 – Bazinga

回答

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 %} 
相關問題