2013-06-12 35 views
0

我有一個表單。目前它沒有特殊的清理方法,它只是有:爲什麼我的表單不能驗證?

def clean(self): 
    logger.debug('cleaning') 
    cleaned_data = super(MyForm, self).clean() 
    return cleaned_data 

這不會被調用,它的日誌語句不會觸發。

我有檢查形式的標準模式:

if form.is_valid(): 
     ... 
    else: 
     logger.debug(form.non_field_errors()) 
     logger.debug(form.errors) 
     logger.debug('form did not validate') 

我也呈現模板字段錯誤和非現場的錯誤,但他們都爲空,日誌報表是空白。我怎樣才能找出發生了什麼問題?

+2

你可以添加表單定義嗎?這裏我沒有看到任何明顯的錯誤。 – Wolph

+0

此外,視圖代碼(具體來說,你作爲數據傳遞什麼)也會很有趣 – Wolph

+1

或者,如果可以的話,嘗試在你的else塊內用'pdb'調試它 –

回答

0

問題出在__init__方法中。我沒有把正確的信息傳遞給__init__,這導致了這種奇怪的行爲。

有趣的是,如果你的表格錯誤__init__它不會拋出錯誤,或給你有用的驗證錯誤信息!

+1

的確如此。具體來說,如果'data'參數(這就是爲什麼我要求視圖)是一個空字典,它不會驗證,但不會總是給出有用的錯誤。有了必填的表單字段,您將會看到一個錯誤,但是沒有。 – Wolph

相關問題