2017-05-04 69 views
0

模板標籤內容我已經從base.html文件繼承模板我對網頁(about.html)的問題。同時,我可以將base.html擴展爲home.html。我懷疑這是一個語法問題,在base.htmlabout.html,但無法找到它。它也可能是base.html只能由home.html繼承。你能幫忙嗎? 我的基地。 HTMLDjango的子模板不包括自base.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'), 
+0

你是什麼意思?發生了什麼事情,和你期望的有什麼不同?另外,展示你的觀點;並且請注意,在子模板中,任何超出塊的內容都無法呈現。 –

+0

@Daniel Roseman問題是'about.html'的模板標籤與home.html具有相同的h1標籤,而它應該顯示「Hi,About!」根據'about.html'中的標籤。我檢查了我的觀點和網址;他們路由到127.0.0.1:8000/about。 – Kaleab

回答

1

在你about.html模板,你需要添加

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

你也不需要在about.html文件<html><head><body>標籤,因爲它們是在base.html文件文件已經

0

我想你想讓你的about.html看起來像這樣。

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

注意:你在你的頭一個<h1>,我覺得你真的想在你的<body>

+0

我嘗試了建議的解決方案,但url(127.0.0.1:8000/about/)只顯示home.html,而它應顯示about.html。我檢查了我的views.py和urls.py文件。 – Kaleab

+0

這是因爲您的about.html中沒有任何內容。您正在將它加載到您的標題中 – HenryM

+0

我將代碼複製並粘貼到'about.html'中,但模板標記中顯示的模板仍然來自'home.html'。我讀過(在Django書籍中)我們只能將base.html擴展爲只有一個模板。我也試圖擴展'home.html',但這也不起作用。 – Kaleab

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