2016-05-31 22 views
1

Wenn ich {% extends "X.html" %} zu meinen untergeordneten Vorlagen hinzufügen (die übergeordnete "base.html"), wird nur die übergeordnete Vorlage geladen. Wenn ich es wegnehme, wird die Kindvorlage geladen. Ich habe eine andere App, wo ich eine scheinbar identische Vererbungsstruktur habe, also bin ich ratlos. Hier ist "base.html":erweitert nicht funktioniert in 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> 

Hier ist "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 %} 

ich auf jeden Fall das Kind Schablone in meinem views.py nenne, das ist also nicht das Problem:

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

Hier sind mein Projekt Urls:

von django.conf.urls Import enthalten, url von django.contr ib Import Admin von App Import Ansichten

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

und App-URL:

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

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

    ] 

Wenn ich auf die URL gehen/wachsen/Ich erwarte "grow.html" zu sehen, aber ich sehe " base.html ".

+1

Sie müssen '{% block content%} {% endblock%}' in base.html einfügen – trantu

Antwort

5

Ihre Basisvorlage enthält keinen content Block. so ist es ist erben, es hat einfach nirgendwo den Block zu halten.

Fügen Sie einfach den Inhaltsblock hinzu.

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