2017-07-21 21 views
2

這是一個比wtforms問題更多的python問題,底部的摘要可能對通常回答純python問題的人更有意義。 當一個頁面驗證並且一個字段未通過驗證時,我設法通過使用if/else語句讓腳本保持先前輸入的值。它允許用戶看到他們被觸發驗證錯誤之前鍵入:從null表單數據中刪除空字符串,驗證失敗

if request.method == 'POST': 
       if form.validate_on_submit(): 
         try: 
           models.insert(form) 
         except: 
           return redirect(url_for('failure')) 
         else: 
           return redirect(url_for('success')) 
       else: 
         number_of_discs = form.number_of_discs.data 
         number_of_parts = form.number_of_parts.data 
         disc_number = form.disc_number.data 
         tx_date = form.tx_date.data 
         start_time_1 = form.start_time_1.data 
         end_time_1 = form.end_time_1.data 
         start_time_2 = form.start_time_2.data 
         end_time_2 = (form.data.get('end_time_2', '')) 

但是,如果場中的一個,然後空,並驗證錯誤被觸發第二另一正確填寫領域,空字段中的值現在顯示爲「無」。 從某種意義上說,這是設計的,因爲我希望數據庫用NULL值而不是空字符串進行更新。但是,在這一過程的這一部分 - 即表單驗證中,我希望該字段顯示爲空。

所以總結一下,我怎麼能改線:

number_of_discs = form.number_of_discs.data 

使number_of_discs包含除非是空的form.number_of_discs.data的數據,在這種情況下,它應該包含一個空字符串。

回答

2

如果是data那空:

number_of_discs = form.number_of_discs.data or '' 

否則,像:

number_of_discs = form.number_of_discs.data if form else '' 
+0

尼斯一個開山鼻祖 – apprentice123