Commit 7f62d794 authored by Bouke Haarsma's avatar Bouke Haarsma Committed by Tim Graham
Browse files

[1.5.x] Fixed #20962 -- Documented that template tag render() may raise exceptions.

Thanks Keryn Knight for the report.

Backport of e077224f from master
parent 5c1be8a8
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -236,6 +236,7 @@ answer newbie questions, and generally made Django that much better:
    Janos Guljas
    Thomas Güttler <hv@tbz-pariv.de>
    Horst Gutmann <zerok@zerokspot.com>
    Bouke Haarsma <bouke@haarsma.eu>
    Antti Haapala <antti@industrialwebandmagic.com>
    Scot Hacker <shacker@birdhouse.org>
    dAniel hAhler
+6 −2
Original line number Diff line number Diff line
@@ -495,8 +495,12 @@ Notes:

* The ``render()`` method is where the work actually happens.

* ``render()`` should never raise ``TemplateSyntaxError`` or any other
  exception. It should fail silently, just as template filters should.
* ``render()`` should generally fail silently, particularly in a production
  environment where :setting:`DEBUG` and :setting:`TEMPLATE_DEBUG` are
  ``False``. In some cases however, particularly if :setting:`TEMPLATE_DEBUG` is
  ``True``, this method may raise an exception to make debugging easier. For
  example, several core tags raise ``django.template.TemplateSyntaxError``
  if they receive the wrong number or type of arguments.

Ultimately, this decoupling of compilation and rendering results in an
efficient template system, because a template can render multiple contexts