django - 从通用应用程序视图返回表单错误

时间:2009-07-07 18:08:47

标签: django

我正在开发一个通用的应用程序。我们假设它处理可以附加到任何模型的 Foo 对象。

在模板中,get_foo_form模板标记可以显示 Foo 表单:

{% get_foo_form for object as form %}

object 是foo将附加到的对象。

表单会发布到 foos 应用程序中的视图。如果表格有效,一切都很好。保存新的 foo ,视图会重定向到以前的页面(通过隐藏在表单中的“下一个”参数),并且显示新的 foo

但如果表格无效,我就输了。对于相同的情况,类似的应用程序, django.contrib.comments 有一个中间页面,要求用户更正错误。但是,我不想显示中间页面,我想显示前一页的错误。重定向在这里是不够的,因为我需要将错误消息传递给前一页。

有没有办法完成我想要做的事情,或者我应该改变整个结构?

2 个答案:

答案 0 :(得分:2)

您真正需要做的就是在返回您所在的页面时将错误消息添加到您的词典中。然后在HTML中添加if标签以检查是否存在错误,并在需要时显示相应的错误。

您可以将错误消息存储在列表中,然后将其作为render_to_response调用中的字典参数之一。

答案 1 :(得分:0)

如果您的应用程序具有通用模型,则在后处理视图中验证表单后将错误消息传递到发布视图的最佳方法似乎是使用会话来存储消息并重定向回来。

感谢并向AlbertoPL 求助+1。