diff --git a/django/views/debug.py b/django/views/debug.py index 3728dffa4a..4d2d0d05df 100644 --- a/django/views/debug.py +++ b/django/views/debug.py @@ -10,9 +10,10 @@ from os.path import dirname, join as pathjoin HIDDEN_SETTINGS = re.compile('SECRET|PASSWORD') def linebreak_iter(template_source): - newline_re = re.compile("^", re.M) - for match in newline_re.finditer(template_source): - yield match.start() + p = template_source.find('\n') + while p >= 0: + yield p + p = template_source.find('\n', p+1) yield len(template_source) + 1 def get_template_exception_info(exc_type, exc_value, tb): @@ -520,4 +521,4 @@ TECHNICAL_404_TEMPLATE = """ -""" \ No newline at end of file +""" diff --git a/docs/settings.txt b/docs/settings.txt index eed9d03d39..66baeb0860 100644 --- a/docs/settings.txt +++ b/docs/settings.txt @@ -549,6 +549,23 @@ The ID, as an integer, of the current site in the ``sites`` database. This is used so that application data can hook into specific site(s) and a single database can manage content for multiple sites. +TEMPLATE_DEBUG +-------------- + +Default: ``False`` + +**Only available in Django development version.** + +A boolean that turns on/off template debug mode. If this is ``True``, the fancy +error page will display a detailed report for any ``TemplateSyntaxError``. This +report contains the relevant snippet of the template, with the appropriate line +highlighted. + +Note that Django only displays fancy error pages if ``DEBUG`` is ``True``, so you'll +want to set that to take advantage of this setting. + +See also DEBUG. + TEMPLATE_DIRS -------------