在Django中继承模板

时间:2015-08-20 05:21:22

标签: django django-templates template-inheritance

我能够呈现home.html  它会打印Mary had a little lamb <{1}} sitetitle

以下是home.html

的代码
<head>
</head>
<body>
<h1>{{sitetitle}}</h1>
<h1>{% block fun %} {% endblock %}</h1>
</body> 

但它不会在fun中呈现title.html块,尽管它位于同一目录中。

以下是title.html

的代码
{% extends "home.html" %}
{% block fun %}
{{ link }}
{% endblock %}

以下是views.py的代码     来自django.shortcuts导入渲染     从模型导入siteprop     来自django.template导入加载程序

def testf(request) :
 obj=siteprop.objects.first()
 context=obj.__dict__
 if '_state' in context: 
 del context['_state']
 print context
 return render(request,"home.html",context)

以下是urls.py

的代码
from django.conf.urls import include, url
from django.contrib import admin
from thingslab import views
urlpatterns = [
    url(r'^admin/', include(admin.site.urls)),
    url(r'^test/',views.testf,),
]

1 个答案:

答案 0 :(得分:3)

fun中的title.html块未呈现,因为在您的视图中,您正在呈现home.html

Django不会自动知道title.html的代码应该包含在home.html中,因为它还包含fun块。

您必须呈现title.html而不是home.html

 return render(request, "title.html", context)