![](/img/trans.png)
[英]Django TemplateDoesNotExist {% extends base.html %} - where should template be?
[英]Django child template not including content in template tags from base.html
我在从about.html ( about.html )的base.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'),
在您的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.