2009-07-23 10 views
7

Attualmente, django.contrib.comments invia l'utente alla pagina di anteprima se c'è qualche errore nel modulo.commenti di django: come evitare errori di form dal reindirizzamento dell'utente alla pagina di anteprima?

Sto utilizzando commenti nel contesto di un blog e preferirei molto che l'utente rimanga sulla pagina in cui si trovavano se qualcosa è andato storto con l'invio. Per quanto posso dire, però, questo è hard-coded in 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, {}) 
    ) 

C'è un modo che io possa cambiare questo comportamento senza modificare il codice sorgente di Django .contrib.comments?

Qualsiasi puntatore sarebbe apprezzato ...

Grazie!

risposta

3

Sembra che avete due opzioni reali:

  • scrivere il proprio punto di vista. Forse copia il codice di quella vista per iniziare.
  • Patch che visualizza un parametro aggiuntivo, ad esempio 'preview_on_errors' che viene impostato su True ma che può essere sovrascritto. Contribuisci con il patch a Django in modo che altre persone possano trarne beneficio.
+0

+1 per scrivere la propria vista che avvolge la vista post_commento. – Soviut

Problemi correlati