Комментарии django: как предотвратить перенаправление пользователем ошибок формы на страницу предварительного просмотра?

В настоящее время 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 ответа

Решение

Похоже, у вас есть два реальных варианта:

  • Напишите свой собственный взгляд. Возможно, скопируйте код этого представления, чтобы начать.
  • Исправьте это представление, чтобы получить дополнительный параметр, такой как 'preview_on_errors', который по умолчанию имеет значение True, но может быть переопределен. Внесите патч обратно в Django, чтобы другие люди могли извлечь из него пользу.

Да! Теперь есть способ настроить приложение Комментарии. Удачи!

Другие вопросы по тегам