这个想法是在一个页面上有多个小部件,并包含这个'小部件'所需的所有js和css文件(以这种方式管理文件很容易)。重复的文件不是问题。 每个小部件的模板都包含在{%include%}的页面中 从小部件的模板中我试图将内容添加到父级块:
PARENT:
{%block js%}
{%endblock%}
WIDGET
{%block js%}
{{block.super}}
///my widget spectyfic JS
{%end block%}
这是{{block.super}}: Caught AttributeError while rendering: 'BlockNode' object has no attribute 'context'
我不确定我怎么能延长阻止...似乎这在django中是不可能的......任何想法? 定义多个块将无法正常工作,因为我们不知道每个页面上有多少个不同的小部件,我们将拥有什么名称...(而且这不是一个模板的担心)
答案 0 :(得分:15)
来自the docs:
注意强>
include
标记应该被视为“渲染此子模板并包含HTML”的实现,而不是“解析此子模板并将其内容包含在内,就好像它是父节点的一部分”。这意味着包含的模板之间没有共享状态 - 每个包含都是完全独立的渲染过程。
如果您想block.super
工作,则需要使用extends
。
答案 1 :(得分:2)
我知道有点太晚了,但我可能有一些解决方案。使用django-sekizai,您可以将js和css加载到一个地方。看看http://django-sekizai.readthedocs.org/en/latest/