Opened 4 months ago

Last modified 2 weeks ago

#28935 new Bug

Template error raised in an {% extends %} child template shows incorrect source location on debug page

Reported by: Matt Westcott Owned by:
Component: Template system Version: 2.0
Severity: Normal Keywords:
Cc: Preston Timmons, Collin Anderson Triage Stage: Accepted
Has patch: no Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description

If an error occurs in the processing of a template tag on a template that extends another via {% extends %}, the "Error during template rendering" section of the debug page incorrectly shows an excerpt from the parent template rather than the child.

To reproduce:

base.html:

{% block body %}{% endblock %}

home.html:

{% extends "base.html" %}

{% block body %}
    {% include "does_not_exist" %}
{% endblock %}

views.py:

from django.shortcuts import render

def home(request):
    return render(request, 'home.html')

The resulting error page displays:

Error during template rendering
In template /Users/matthew/Development/tbx/wagtail/debug/brokendebug/core/templates/base.html, error at line 0

does_not_exist
1	{% block body %}{% endblock %}
2	

instead of the expected error output:

Error during template rendering
In template /Users/matthew/Development/tbx/wagtail/debug/brokendebug/core/templates/home.html, error at line 4

does_not_exist
1	{% extends "base.html" %}
2	
3	{% block body %}
4	    {% include "does_not_exist" %}
5	{% endblock %}
6	

Bisecting shows that this bug was introduced in #27956 (e643ba8bcf0b1da517cbab689ac157ee031202a3), which was a fix for the opposite case: an error occurring on the parent template. (In the above test case, moving the line {% include "does_not_exist" %} to base.html turns it into a test case for #27956, and fails on pre-e643ba8bcf0b1da517cbab689ac157ee031202a3 revisions as expected.)

Change History (4)

comment:1 Changed 4 months ago by Tim Graham

Cc: Preston Timmons added
Component: UncategorizedTemplate system
Triage Stage: UnreviewedAccepted
Type: UncategorizedBug

comment:2 Changed 4 months ago by Alexander Vyushkov

Owner: changed from nobody to Alexander Vyushkov
Status: newassigned

comment:3 Changed 2 months ago by Alexander Vyushkov

Owner: Alexander Vyushkov deleted
Status: assignednew

comment:4 Changed 2 weeks ago by Collin Anderson

Cc: Collin Anderson added
Note: See TracTickets for help on using tickets.
Back to Top