Django子模板不包括base.html模板标签中的内容

时间:2017-05-04 13:13:37

标签: html django inheritance

我从 base.html 继承我的关于页面( about.html )的模板时遇到问题。同时,我可以将 base.html 扩展到 home.html 。我怀疑这是 base.html about.html 中某处的语法问题,但无法找到它。它也可能是 base.html 仅由 home.html 继承。你能帮忙吗? 我的基地。 HTML

<!DOCTYPE html>
{% load staticfiles %}

<html lang="en">
<head>
    <title> {% block title %}{% endblock %} </title>
    <h1> {% block h1 %}{% endblock %} </h1>
</head>
<body>
{% block content %}
{% endblock %}

{% block two %}
{% endblock %}
</body>
<!DOCTYPE html>

我的 about.html

{% extends "base.html" %}
{% load staticfiles %} 
<html lang="en">
  <head>

    {% block title %}About{% endblock %}
    {% block h1 %}Hi,About!{% endblock %}

  </head>
  <body>
  </body>
</html>

部分 views.py

from django.shortcuts import get_object_or_404, render_to_response
from ecomstore.catalog.models import Category, Product
from django.template import RequestContext


def about(request, template_name="about.html"):
    page_title='About'
    return render_to_response(template_name, locals(),RequestContext(request))

我的 urls.py

from django.conf.urls import url
from . import views as catalog_views
urlpatterns = [
url(r'$',catalog_views.home,name='home'),
url(r'^about/$',catalog_views.about,name='about'),

2 个答案:

答案 0 :(得分:0)

我想你希望你的about.html看起来像这样。

{% extends "base.html" %}
{% load staticfiles %} 
{% block title %}About{% endblock %}
{% block content %}Hi,About!{% endblock %}

注意:您的标题中有一个<h1>,我认为您实际上想要<body>

答案 1 :(得分:0)

当你扩展base.html时,你的base.html定义了整个html页面。在您的about.html中,您只需要编写要在base.html块中插入的内容。所以,你的about.html必须喜欢这个

{% extends "base.html" %}
{% load staticfiles %} 
{% block title %}
   About
{% endblock %}
{% block h1 %}
   Hi,About!
{% endblock %}