django templates - using block.super in included template fails (exception)
the idea is to to have multiple widgets on a page and include all js and css files needed form this 'widgets' (it's easy to manage files this way). Duplicated files is not a problem. Every widget's template is included into a page by {%include%} From inside widget's template I'm trying to add content to parent's block:
PARENT:
{%block js%}
{%e开发者_运维问答ndblock%}
WIDGET
{%block js%}
{{block.super}}
///my widget spectyfic JS
{%end block%}
this is giving an error with {{block.super}}: Caught AttributeError while rendering: 'BlockNode' object has no attribute 'context'
I'm not sure how else can I extend block... Seems it's impossible in django... any ideas? Defining multiple blocks will not work as we don't know how many different widgets with what names will we have on each page... (and it's not a nemplate's worry)
From the docs:
Note
The
include
tag should be considered as an implementation of "render this subtemplate and include the HTML", not as "parse this subtemplate and include its contents as if it were part of the parent". This means that there is no shared state between included templates -- each include is a completely independent rendering process.
If you want block.super
to work then you need to use extends
instead.
I know it a bit too late but I may have some solution. Using django-sekizai you can load js and css into one place. Take a look at http://django-sekizai.readthedocs.org/en/latest/
精彩评论