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

django-从通用应用程序视图返回表单错误,django,Django,我正在开发一个通用应用程序。让我们假设它处理可以附加到任何模型的Foo对象 在模板中,Foo表单可以通过get\u Foo\u formtemplate标签显示: {% get_foo_form for object as form %} 对象是foo将附加到的对象 表单将发布到foos应用程序中的视图。如果表格有效,一切正常。保存新的foo,视图重定向到前一页(通过表单中隐藏的“next”参数),新的foo显示得很好 但是如果表格无效,我就迷路了。对于相同的情况,类似的应用程序django.

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

在模板中,Foo表单可以通过
get\u Foo\u form
template标签显示:

{% get_foo_form for object as form %}
对象是foo将附加到的对象

表单将发布到foos应用程序中的视图。如果表格有效,一切正常。保存新的foo,视图重定向到前一页(通过表单中隐藏的“next”参数),新的foo显示得很好

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


有什么方法可以完成我要做的,或者我应该改变整个结构吗?

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


您可以将错误消息存储在一个列表中,然后在调用render_to_响应时将其作为字典参数之一

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


感谢和+1 to的帮助。

@AlbertoPL post\u foo视图获取post请求并检查表单是否有效。如果有效,则保存foo并重定向回显示记录的视图。如果无效,我需要传递错误变量。我不能使用httpresponseredirect,因为我不能使用它传递任何变量。render_to_response也不能使用,因为post视图不知道或不关心其他视图(显示主应用程序中的记录)的功能。哦,好的,在这种情况下,您可以在其他视图中添加一个函数,post视图可以调用该函数来传递错误消息吗?如果你能给我一个例子来说明你的意思,我真的很感激,我不确定我是否明白你的意思:)我假设你有不同的视图文件。你说的视图是指模板吗?因为我的意思是,一个视图可以导入另一个视图,你可以直接调用函数。我这里说的是两个视图,一个在通用foo应用程序中处理帖子,一个在主应用程序中显示记录。下面是我在回复之前的想法:view,args,kwargs=resolve(下一步);kwargs['form_errors']=form.\u errors;返回视图(请求、*args、**kwargs),但我觉得这个解决方案并不优雅。据我所知,你是在暗示类似的事情?