Django模板:它如何决定加载模板的位置?

时间:2014-11-03 22:24:30

标签: django django-templates

我正在关注Django Girls Tutorial,直到我们添加了登录功能,并且我已经尝试从不同的模板文件夹加载而不是我想要的。

我将所有博客模板都放在blog \ templates \ blog \等中,这就是Django正在寻找我的login.html的地方。但是,在教程中(以及我的文件夹结构中的结果),login.html的路径是:mysite / templates / registration / login.html。那么我如何让Django看到那里?

对不起,如果这是一个愚蠢的问题。

1 个答案:

答案 0 :(得分:1)

Django将向您的settings.py查看如何加载模板,以及它应该尝试加载模板的顺序。您可能没有配置django来查找mysite / templates中的模板。

有一个名为TEMPLATE_DIRS的设置,它是模板文件夹的绝对路径列表。因此,在您的settings.py文件中,尝试以下内容。阅读我的评论,看看每一行的作用。

# create a variable that stores the absolute path to your project's root directory
# you might have something like this already defined at the top of your settings.py
BASE_DIR = os.path.abspath(os.path.join(os.path.dirname(__file__), os.pardir))

# this is the default value for TEMPLATE_LOADERS
# which says to look at the `TEMPLATE_DIRS` variable, and then in each of your app's subdirectories for templates
TEMPLATE_LOADERS = ('django.template.loaders.filesystem.Loader',
                    'django.template.loaders.app_directories.Loader')

# the special sauce. tell django to look at the "templates" folder
TEMPLATE_DIRS = (os.path.join(BASE_DIR, 'templates'), )