【问题标题】:Inherit template in Django在 Django 中继承模板
【发布时间】:2015-11-13 14:43:56
【问题描述】:

我可以渲染home.html 它打印Mary had a little lamb,即sitetitle

这是home.html的代码

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

但它没有渲染title.html 中的fun 块,尽管它位于同一目录中。

这是title.html的代码

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

这是views.py 的代码 从 django.shortcuts 导入渲染 从模型导入站点道具 from 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,),
]

【问题讨论】:

  • 请出示您的views.py和urls.py代码
  • 你为什么在 fun block 中使用 h1 标签?
  • 标题大小的游戏玩家

标签: django django-templates template-inheritance


【解决方案1】:

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

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

你必须渲染title.html而不是home.html

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-23
    • 2013-01-09
    • 2011-12-24
    • 1970-01-01
    • 2021-02-13
    • 2011-02-04
    相关资源
    最近更新 更多