Django模板无法正确呈现,只需将“{%extends base%}”等打印到页面即可

时间:2014-04-25 03:27:24

标签: python django django-templates django-views

我试图在谷歌应用引擎应用上运行一个非常基本的Django模板(在我的本地机器上,尚未部署,如果这很重要),但我的应用程序表现得像它不知道如何模板工作。它只是将{ % extends "base.html" %}打印到网页上,而不是使用它来加载模板,如下所示:

enter image description here

尽管如此,这些观点似乎正常运作,因为" {{message}}"至少加载正确的东西。我觉得我只是错过了一些愚蠢的信息,但我感到茫然。我已经看了一段时间的Django文档,我不知道出了什么问题。以下是相关代码:

settings.py小部件:

TEMPLATE_DIRS = (
os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..', 'hello/templates'))
# Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".
# Always use forward slashes, even on Windows.
# Don't forget to use absolute paths, not relative paths.
)

在views.py中:

from django import http
from django.shortcuts import render_to_response

def home(request):
    return render_to_response('index.html', {'message':'Hello World!'})

def form(request):
    return render_to_response('index.html', {'message':'This page will have a form.'})

在base.html(位于正确的TEMPLATE_DIRS路径中):

<head>
    <title>Lunar Spring</title>
    <meta charset="utf-8">
</head>
<body>

    <div class="header">
    Some Website Name
    </div>
    <div class="content">
    { % block content %}
    { % endblock % }
    </div>

</body>

在index.html中(也在正确的路径中):

{ % extends "base.html" % }

{ % block content % }
    {{ message }}
{ % endblock % }

1 个答案:

答案 0 :(得分:2)

您的django模板语法不正确,请注意花括号和百分号之间的空格。

例如,替换:

{ % extends "base.html" % }

使用:

{% extends "base.html" %}