#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.

Reply via email to