扩展base.html问题

时间:2010-06-17 23:48:26

标签: django templates extends

我收到以下错误:

Template error

In template /home/mo/python/django/templates/yoga/index.html, error at line 1
Caught TemplateDoesNotExist while rendering: base.html
1 {% extends "base.html" %}
2 
3 {% block main %}
4     <p>{{ page.title }}</p>
5     <p>{{ page.info}}</p>
6     <a href="method/">Method</a>
7 {% endblock %}
8 

这是我的base.html文件,与index.html位于同一位置

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <div style="width:50%; marginleft:25%;">
    {% block main %}{% endblock %}
    </div>

到底发生了什么? base.html文件应该位于其他地方吗?     

4 个答案:

答案 0 :(得分:18)

“与yoga/index.html在同一位置”表示该模板实际上是yoga/base.html

答案 1 :(得分:16)

假设TEMPLATE_DIRS包含/home/mo/python/django/templates/,而不包含.../yoga/,那么您需要:

base.html移至/home/mo/python/django/templates/

OR

在模板中写下{% extends "yoga/base.html" %}

答案 2 :(得分:4)

base.html是否位于设置文件的TEMPLATE_DIRS列表中的目录中?

答案 3 :(得分:1)

Base.html 文件必须位于模板文件夹的底部才能使用&#39; base.html&#39; ,如果位于另一个文件夹中,例如:templates / home / base.html,则必须使用

指定路径
{ % Extends ' home / base.html '% }