如何在模板标记中修改{%block%}?

时间:2019-01-21 17:30:12

标签: django django-templates

我定义了一个名为content_blocks的include_tag。我想在基本模板中定义的{% block%}中插入一些js。

base.html:

<html>
<body>

{% content_blocks %} # content_blocks tag will be used here..
...
...
{% block js %}

{% endblock %}
</body>
</html>



# custom_tags.py

@register.inclusion_tag('tags/content_blocks.html')
def content_blocks():
    content_type = ... # some content type, obtained from somewhere else

    # todo: depending on 'content_type', insert some js in to {% block js %} 
    # how?

    .... other stuff

这可行吗?我不能将js放在标记模板中,因为它随后将其输出到页面的中间(此js代码需要JQuery并将其加载到页面的末尾)

1 个答案:

答案 0 :(得分:0)

虽然您的问题不是很清楚,但是我认为您想要的是我最近一直在做什么,但我的设置如下:

  • 我有一个包含以下block的基本模板:page_content用于各个子模板的唯一html / content,page_js用于其自定义脚本
  • 我的jquery位于基本模板中,而我的page_js标签位于页面底部所有其他脚本之后。
  • 因此在子模板中,例如扩展基础模板的homepage.html,我还将包括{% block page_js %}标记,它的作用是覆盖基础模板中的空模板并放置您的脚本在那里,并且将在该基础模板上使用jQuery,因为它继承了它