2013-05-08 54 views
1

我正在使用Django-1.4.5。和JQuery和我有模板系统的问题:我有base.html脚本和JQuery函数,但是当我尝试在另一个模板(它扩展base.html)使用标签时,它不显示。这是我base.html文件:在Django中使用jQuery base.html模板

<head> 
<meta charset="utf-8"> 
<link href="{{ STATIC_URL }}/css/custom-theme/jquery-ui-1.10.2.custom.css" rel="stylesheet"> 
<script src="{{ STATIC_URL }}/js/jquery-1.9.1.js"></script> 
<script src="{{ STATIC_URL }}/js/jquery-ui-1.10.2.custom.js"></script> 
<link rel="stylesheet" href="{{ STATIC_URL }}/css/style.css" type="text/css" /> 
<script> 
$(function() { 
    $("#accordion1").accordion({ 
     heightStyle: "content", 
    }); 
    $('#accordion2').accordion({ 
     heightStyle: "content", 
    }) 
    $("#tabs").tabs().addClass("ui-tabs-vertical ui-helper-clearfix"); 
    $("#tabs-li").removeClass("ui-corner-top").addClass("ui-corner-left"); 
}); 

我还有一个模板:

{% extends "base.html" %} 
{% block title %}{% endblock %} 
{% block head %} 
{% endblock %} 
{% block content %} 
<div id="tabs"> 
    <ul> 
     <li><a href="#tab1">Tab 1</a></li> 
     <li><a href="#tab2">Tab 2</a></li> 
     <li><a href="#tab3">Tab 3</a></li> 
     <li><a href="#tab4">Tab 4</a></li> 
     <li><a href="#tab5">Tab 5</a></li> 
    </ul> 
    <div id="tab1"><p>Text 1</p></div> 
    <div id="tab2"><p>Text 2</p></div> 
    <div id="tab3"><p>Text 3</p></div> 
    <div id="tab4"><p>Text 4</p></div> 
    <div id="tab5"><p>Text 5</p></div> 
</div> 
{% endblock %} 

当我base.html文件切换标签,它的工作原理没有问题。当我扩展base.html时,我无法弄清楚为什么它不起作用。预先感谢您的答案。

+0

我会推荐使用['staticfiles'](https://docs.djangoproject.com/en/dev/howto/static-files/)应用程序来使用'static'模板标记,而不是'{{STATIC_URL }}',这不太灵活。 – gertvdijk 2013-05-08 12:47:09

+0

请详细阐述一下“它不起作用”。根本没有显示身体?只是JavaScript/jQuery不转换这个div到标签?网页来源是否符合您的期望?浏览器中的任何JavaScript控制台错误?任何Django错误?等 – gertvdijk 2013-05-08 12:56:21

回答

0

我看不到你的base.html中的{% block content %}{% endblock %},你能写那个吗?

也许你正在写模板头{% block head %}{% endblock %}

+0

我在base.html中的内容是在标记(我有两个手风琴),并在脚本标记。正如你所看到的,我只在这个其他模板中使用{%block content%} {%endblock%},结束它为空。 – Gogo 2013-05-08 12:50:52

+2

@Gogo你的问题中包含的base.html模板中没有'content'块。在扩展它的模板中定义一个将不起作用。 – gertvdijk 2013-05-08 12:54:49

+0

你是对的!谢谢你的回答,我会解决它 – Gogo 2013-05-08 12:59:45

0

随着

{% block head %} 
{% endblock %} 

你捣毁所有的内容在base.htmlhead块。我猜你的base.html模板在这个块中包含了所有的javascript源代码。

只是省略了这两行。 head块将被继承。

+0

不,我已经试过了。无论是否有头块,结果都是一样的。 – Gogo 2013-05-08 12:50:19