2009-07-23 6 views
7

Actuellement, django.contrib.comments envoie l'utilisateur à la page d'aperçu s'il y a une erreur sur le formulaire. J'utilise des commentaires dans le contexte d'un blog et je préférerais de beaucoup que l'utilisateur reste sur la page où il se trouvait en cas de problème avec la soumission. Pour autant que je peux dire cependant, c'est codé en dur dans django.contrib.comments.views.comments.post_comment:Commentaires de django: comment empêcher les erreurs de formulaire de rediriger l'utilisateur vers la page d'aperçu?

# 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, {}) 
    ) 

Est-il possible que je peux changer ce comportement sans changer le code source django .contrib.comments?

N'importe quel pointeur serait apprécié ...

Merci!

Répondre

3

On dirait que vous avez deux options réelles:

  • Écrivez votre propre point de vue. Copiez éventuellement le code de cette vue pour commencer.
  • Corrigez cette vue pour prendre un paramètre supplémentaire, tel que 'preview_on_errors' dont la valeur par défaut est True, mais qui peut être remplacée. Renvoyez le correctif à Django pour que d'autres personnes puissent en bénéficier.
+0

+1 pour l'écriture de votre propre vue qui enveloppe la vue post_comment. – Soviut

Questions connexes