Hi there!

> Florian, I know that the benefits of this solution. But I see the
> detriments too. I think that if we allow that a app template
> overwrite with self-reference another app template the template
> development will be a chaos. I thought alot about it

Well, I agree that if miss used, this feature could be more of a burden than of
a feature. After giving it some thought, three possibilities come to mind. Here
they are, listed in what I think is from most to less preferable:

- Trust that the app developers aren't going to play nasty with it. Clear
  miss use warning could be stated in the docs.

- Include (de)activation flags in the loaders. When, for example, the app
  loader's flag is deactivated, no app could self-reference an other. For easy
  of use, a subclass could be created for every loader class switching the flag
  so that you could decide simply by (un)commenting loaders in settings.

- Change the "extends" template tag and add the possibility to provide kwargs
  to it. Something like:

  {% extends 'some/template.html' from app 'django.contrib.admin' %}
  {% extends 'some/template.html' from dir 'some/template/dir' %}

  "app" and "dir" here could be aliases defined as some loader's attribute. If
  nothing specified, it could fall back to standard self-reference behaviour.
  The positive part of this is that you could exactly decide what template to
  extend. The negative one, that it is just a lot more of code on the template
  layer and that it would (IMO) overcomplicate things.

My two cents! I'll work on the self-referencing code today and tomorrow.

Best regards,

Unai Zalakain

Attachment: signature.asc
Description: PGP signature

Reply via email to