Django找不到模板目录

2024-10-17 08:28:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我知道有很多类似的问题,但还没有人解决我的问题。

Python版本:3.4 Django版本:1.8

加载http://127.0.0.1:8000/lfstd/时,我在/lfstd/处获得模板doesnotexist。

系统.py:

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
TEMPLATE_PATH = os.path.join(BASE_DIR, 'templates')
TEMPLATE_DIRS = (
    TEMPLATE_PATH,
)

lfstd/视图.py:

def index(request):
[...]
return render(request, 'lfstd/index.html', context_dict)

项目url.py:

from django.conf.urls import include, url
from django.contrib import admin

url(r'^admin/', include(admin.site.urls)),
url(r'^lfstd/', include('lfstd.urls')),

lfstd url.py:

from django.conf.urls import patterns, url
from lfstd import views

urlpatterns = patterns('',
    url(r'^$', views.index, name='index'))

在基本目录和模板路径上运行打印,我得到:

Base dir: C:\Users\Phil\PycharmProjects\TownBuddies
Template path: C:\Users\Phil\PycharmProjects\TownBuddies\templates

这正是我的项目和模板文件夹所在的位置。但是,django不会在该文件夹中查找模板。它位于以下文件夹中:

C:\Python34\lib\site-packages\django\contrib\admin\templates\lfstd\index.html (File does not exist)
C:\Python34\lib\site-packages\django\contrib\auth\templates\lfstd\index.html (File does not exist)

事实上,如果我把我的模板移到那里,它确实会找到它,并且它会工作。

任何帮助都是非常感谢的,我开始与Django和完全卡住。。。

编辑:

我将TEMPLATE DIRS更改为TEMPLATES但Django仍然没有在TEMPLATES文件夹中查找: from the django debug report


Tags: pathdjangofrompyimport文件夹模板url
2条回答

我正在用pytest-django做一些单元测试,突然我被重复了一遍,完全出乎意料地出现了**TemplateDoesNotExist**错误。

我在试图弄清楚发生了什么时发现了这个stackoverflow问题。

我最终通过删除所有的__pycache__目录解决了这个问题。从那以后我明白了,当事情突然变得莫名其妙地不稳定时,在通过尝试修复来打破事物之前,先清除掉__pycache__

我使用此脚本递归清除具有以下内容的模块所在的所有__pycache__目录:

#!/usr/bin/env python
import os
import shutil

#!/usr/bin/env python

import os
import shutil

BASE_DIR = os.path.abspath(__file__)
print(BASE_DIR)

for root, dirs, files in os.walk(BASE_DIR):
    for directory in dirs:
        if directory == '__pycache__':
            shutil.rmtree(os.path.join(root, directory))

django 1.8中不赞成使用TEMPLATE_DIRS设置。您应该使用^{}代替:

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [TEMPLATE_PATH],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

相关问题 更多 >