django sekizai {%addtoblock%}标签无法正常工作 [英] django sekizai {% addtoblock %} tag is not working properly

查看:30
本文介绍了django sekizai {%addtoblock%}标签无法正常工作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试实施django sekizai应用程序.它正在复制我要添加的js文件.

I'm trying to implement django sekizai app. It is duplicating the js files that i'm adding.

基本模板:

{% load sekizai_tags %}
...
{% render_block "my_js" %}

使用此基础的模板:

{% load sekizai_tags %}
<div id="a1" >
    {% addtoblock "my_js" %}
        <script type="text/javascript" src="{{ MEDIA_URL }}js/my_js.js"></script>
    {% endaddtoblock %}
</div>
{% addtoblock "my_js" %}
    <script type="text/javascript" src="{{ MEDIA_URL }}js/my_js.js"></script>
{% endaddtoblock %}

现在这里渲染的模板已经渲染了两次,但是当我尝试在div中添加相同的脚本时,它没有被复制.如果有人可以对此有所启发,将不胜感激!

Now here the rendered template has rendered twice.But when I tried adding the same script within the div it wasn't duplicated. Would appreciate if someone can shed some light on this!

此外,当我尝试在由模板标签呈现的模板中使用{%addtoblock%}时,脚本会丢失(既不包含脚本也不保留在该模板中).

Also when i try to use {% addtoblock %} in a template rendered by a template tag the script goes missing (It is neither included nor it stays in that template).

注意:模板标签 render_block addtoblock 来自

Note: The template tags, render_block and addtoblock, are from the django-sekizai package.

推荐答案

{%addtoblock%} {%endaddtoblock%} 必须位于继承另一个模板的模板.

{% addtoblock %} and {% endaddtoblock %} have to be inside of a block in templates that inherit another template.

# base.html
<html>
    ...
    {% render_block 'js' %}
    {% block js %}{% endblock %}
</html>


# some-page.html
{% inherits 'base.html' %}

{% block js %}
    {% addtoblock 'js' %}
        <script type="text/javascript" ... />
    {% endaddtoblock %}
{% endblock %}

希望对您有帮助.

这篇关于django sekizai {%addtoblock%}标签无法正常工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆