#24891: Warn if referencing a template by the same name as one in an installed
app
with higher precedence
---------------------------------+--------------------------------------
Reporter: giuliettamasina | Owner: nobody
Type: New feature | Status: new
Component: Template system | Version: master
Severity: Normal | Resolution:
Keywords: | Triage Stage: Unreviewed
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
---------------------------------+--------------------------------------
Comment (by giuliettamasina):
Replying to [comment:2 prestontimmons]:
> I understand the confusion here, but the warning behavior is a little
ambiguous. What if multiple loaders are defined? Or what if recursive
inheritance is used? It's valid for an application to extend a template
from another application with the same name.
>
> Some better solutions may be to:
>
> 1) Add logging in `django.template.loader` for `template.origin.name` so
the full template paths can be logged to the console.
>
> 2) Use Django debug toolbar to see which template was used.
I guess in the case of multiple loaders the check could be per loader or
something like that. No warning would be emitted in the case of templates
extending each other. However, of course this entire idea would need more
work to handle various complex template scenarios. It might turn out to
actually be an improvement to the documentation or such. But I've seen
over and over developers rather new to Django run into this and I think
there could be some improvement.
Basically, you can have a template in your app and reference it, without
there ever being a possibility of that template being used, unless you
have read [https://docs.djangoproject.com/en/1.8/ref/settings/#installed-
apps a specific sentence] in the documentation or otherwise know why.
Logging and debugging of course help to figure this out, but I think we
could make it even easier (and time efficient) by pointing it out to begin
with, since we can probably know the occurrence of this case from just
known facts about the current project/settings.
--
Ticket URL: <https://code.djangoproject.com/ticket/24891#comment:3>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
--
You received this message because you are subscribed to the Google Groups
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-updates/073.a90ac288a40adbcedd7f74f59366cf18%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.