2016-05-31 164 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>