這是我的代碼從視圖中的片段:Django的 - 如何以最佳方式form.save後處理ValidationErrors(提交= FALSE)
if form.is_valid():
instance = form.save(commit=False)
try:
instance.account = request.account
instance.full_clean()
except ValidationError, e:
# Do something with the errors here... I certainly don't want to do this 180 times.
這是一個完全混亂。誰願意在每個視圖中手動處理驗證錯誤。如果您在save(commit=False)
之後沒有修改實例,那麼您不必擔心這個問題,但是在我的情況下,如果每個模型都有一個外部關鍵字account
,該關鍵字設置在幕後並且對用戶隱藏?
任何幫助真的很感激。
@insin +1謝謝!我以前認爲你只能在調用'instance = save(commit = False)'後才能訪問實例。我還有**問題,但是**:如果我手動添加屬性,這意味着我可能不會將它們包含在表單中(即使是因爲安全性而隱藏)。在這種情況下,Django不會使用'is_valid()'驗證這些字段,因爲它們被「排除」。即使它們被「排除」,我如何將它們包含在驗證過程中,以便我不必手動捕獲錯誤並使用'form._update_errors()'? – orokusaki 2010-03-31 20:39:31
@insin您認爲如何? – orokusaki 2010-04-02 00:05:43