django评论:如何防止表单错误将用户重定向到预览页面?

时间:2009-07-23 20:01:27

标签: python django django-contrib

目前,如果表单上有任何错误,django.contrib.comments会将用户发送到预览页面。

我在博客的上下文中使用评论,我宁愿用户留在他们所在的页面上,如果提交的内容出错了。据我所知,这在django.contrib.comments.views.comments.post_comment中是硬编码的:

# If there are errors or if we requested a preview show the comment
if form.errors or preview:
    template_list = [
        "comments/%s_%s_preview.html" % tuple(str(model._meta).split(".")),
        "comments/%s_preview.html" % model._meta.app_label,
        "comments/preview.html",
    ]
    return render_to_response(
        template_list, {
            "comment" : form.data.get("comment", ""),
            "form" : form,
            "next": next,
        },
        RequestContext(request, {})
    )

有没有办法在不将源代码更改为django.contrib.comments的情况下更改此行为?

任何指针都会受到赞赏......

谢谢!

2 个答案:

答案 0 :(得分:3)

看起来你有两个真正的选择:

  • 撰写您自己的观点。可能会复制该视图的代码以开始使用。
  • 修补该视图以获取额外参数,例如'preview_on_errors',默认为True但可以覆盖。将补丁贡献给Django,以便其他人可以从中受益。

答案 1 :(得分:0)

是的!现在有一种方法customize the Comments app。祝你好运!