2016-05-31 128 views
1

当我将{% extends "X.html" %}添加到我的子模板(父“base.html”)时,只加载父模板。当我把它拿走时,子模板被加载。我有另一个应用程序,我有一个看起来相同的继承结构,所以我很难过。这里是 “base.html文件”:扩展在Django中不起作用1.9

<!DOCTYPE html> 
{% load staticfiles %} 
<html> 
    <head> 
    {% block js %} 
    <script src="{{ STATIC_URL }}js/jquery.1.12.4.min.js"></script> 
    <script src="{{ STATIC_URL }}js/p5.js" 
    {% endblock %} 
    <title>myapp</title> 
    </head> 
    <body> 
    <h1>Welcome to my app</h1> 
    </body> 
</html> 

这里是 “grow.html”

<!DOCTYPE html> 
{% extends "app/base.html" %} 
{% block js %} 
    <script src="{{ STATIC_URL }}js/grow.js"></script> 
{% endblock %} 
{% block content %} 
<body> 
    <div id="message" style="visibility: hidden;"></div> 
    <div id="tree"></div> 
    <a href="/register/">register</a> 
<form method="POST"> 
    {% csrf_token %} 
    <input type="text" id="txt" /> 
    <input type="submit" id="grow" value="grow" style="color: grey;"/> 
</form> 
</body> 
{% endblock %} 

我绝对调用我的views.py子模板,所以这不是问题:

def grow(request): 
    ... 
    return render(request, 'app/grow.html') 

这里是我的项目网址:

从django.conf.urls进口包括URL 从django.contr IB导入管理 从应用进口观点

urlpatterns = [ 
    url(r'^admin/', admin.site.urls), 
    url(r'^grow/', include('app.urls')), 
    url(r'^$', views.home, name="home"),  
    ] 

和应用网址:

from django.conf.urls import url 
from app import views 

urlpatterns = [ 
    url(r'^$', views.grow, name='grow'), 

    ] 

当我去到URL /成长/我期待看到“grow.html”但我看到“ base.html文件”。

+1

您必须将“{%block content%} {%endblock%}”添加到base.html – trantu

回答

5

您的基本模板不包含content块。所以它继承,它只是没有地方坚持块。

只需添加内容块即可。

</head> 
{% block content %} 
    <body> 
    <h1>Welcome to my app</h1> 
    </body> 
{% endblock content %} 
</html>