2010-06-21 103 views
2

我想知道是否有可能在django視圖中進行表單驗證。我有用兩種形式的視圖。每個表單都有自己的清理方法等等,但是我不能在表單級別執行的操作是檢查一個表單中是否存在一個值,以另一個表單執行其他操作。在視圖中的Django表單驗證

這很容易檢查視圖,但我無法找到更新non_field_errors()列表並在視圖中引發ValidationError的方法。我當然可以在視圖中引發一個ValidationError,但是這不會返回到窗體並顯示錯誤。

這可能嗎?

回答

1

您可以將第一個表單傳遞給第二個表單的__init__,並檢查clean或clean_xxx方法,無論您希望檢查什麼。

+0

是的,我已經想過,它應該工作,但似乎不太乾淨。然後,我必須決定之前,我知道哪些形式的結果應該引發ValidationError。這個表格會與另一個相連接。 – espenhogbakk 2010-06-21 08:34:35

+0

但是當表單已經關聯時,你不能避免耦合,你只是試圖將驗證代碼從表單移動到外部表單,IMO更不清潔 – 2010-06-21 09:57:40

+0

它們不一定是相關的,但是在這一個用例中,它們是可以與其他地方無關。 – espenhogbakk 2010-06-28 13:00:32