Комментарии 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, чтобы другие люди могли извлечь из него пользу.
Да! Теперь есть способ настроить приложение Комментарии. Удачи!