2009-07-23 15 views
7

Obecnie django.contrib.comments wysyła użytkownika na stronę podglądu, jeśli wystąpił błąd w formularzu.Komentarze django: jak zapobiegać błędom formularza przed przekierowaniem użytkownika na stronę podglądu?

Używam komentarzy w kontekście bloga i wolałbym, aby użytkownik pozostał na stronie, na której był, jeśli coś poszło nie tak z przesłaniem. O ile mogę powiedzieć, iż jest to zakodowane w 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, {}) 
    ) 

Czy jest jakiś sposób, że mogę to zmienić bez zmiany kodu źródłowego Django .contrib.comments?

Każda wskazówka będzie mile widziane ...

Dzięki!

Odpowiedz

3

Wygląda na to masz dwie realne opcje:

  • napisać swój własny pogląd. Najpierw skopiuj kod tego widoku, aby rozpocząć.
  • Umożliwia poprawienie tego widoku, aby uzyskać dodatkowy parametr, taki jak "preview_on_errors", który domyślnie ma wartość True, ale można go przesłonić. Przekaż tę poprawkę do Django, aby inni mogli z niej skorzystać.
+0

+1 za napisanie własnego widoku, który otacza widok post_comment. – Soviut