繁体   English   中英

Django子模板不包含来自base.html的模板标签中的内容

[英]Django child template not including content in template tags from base.html

我在从about.htmlabout.html )的base.html继承模板时遇到问题。 同时,我能够将base.html扩展为home.html 我怀疑这是base.htmlabout.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'),

在您的about.html模板中,您需要添加

{% block content %}
    <!-- Add your about content here -->
{% endblock content %}

您也不需要about.html文件中的<html><head><body>标记,因为它们已经在base.html文件中了

我认为您希望about.html看起来像这样。

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

注意:标头中有一个<h1> ,我认为您实际上希望在<body>

扩展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 %}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM