2009-04-30 54 views

回答

9

當前Django不提供任何模型級驗證(除了基本的「NOT NULL」,「UNIQUE」和長度驗證)。這是在TODO列表上,但很可能不適合即將發佈的1.1版本。

您可以在您的模型的save()方法中執行驗證相關任務或使用before_save信號(引發信號處理程序中的異常會導致事務回滾)。

1

通常,您應該能夠通過內置的field types及其選項或model's meta options來處理您想要的內容。您也可以override the save method執行驗證/衛生。如果這還不夠,您可以創建自己的field type

問題是沒有良好的預期行爲。應該發生什麼?應該提出例外嗎?這些字段實際上只是數據庫級別的抽象,所以不應該有比數據庫需要知道更多的信息。