在此之前,我一直在使用Django 1.1。爲了確保我與時俱進,我決定更新我的Django環境以使用Django 1.2.3。不幸的是,我遇到了一個問題。Form.save(commit = False)在Django 1.2.3中有不同的表現?
下面的代碼在1.1並沒有引發ValueError:
instance = FormClass(
request.POST,
instance=existing_instance
).save(commit=False)
不過,現在我已經升級,它會引發一個ValueError各一次。我有一個SSN字段,我正在提交作爲我的窗體的一部分,並在執行instance.save()調用之前去掉破折號。不幸的是,ValueError的發生是因爲Django認爲我的SSN值太長了(它需要9個字符,並且它正在接收11-123-45-6789)。
我瀏覽過Django文檔,找不到與此更改有關的任何內容。任何想法發生了什麼?我一直認爲「commit = False」參數的目的是在保存信息之前允許預處理數據。
我錯過了什麼嗎?
def clean_ssn(self): ... 定製清潔劑的形式爲清潔_ {{屬性}}。 – brildum 2010-09-21 12:43:48
對,對,我知道。一個簡單的錯誤,我很快就會解決。 – 2010-09-21 14:51:27