2010-06-21 47 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