在IIS上部署Django网站后,出现如下错误,
TemplateDoesNotExist at /test/new_site/list/
Template-loader postmortem
Django tried loading these templates, in this order:
Using engine django:
django.template.loaders.app_directories.Loader: D:\workspace\One_Site_Project\env_one_site_37\lib\site-packages\django\contrib\admin\templates\test\new_site_list.html (Source does not exist)
django.template.loaders.app_directories.Loader: D:\workspace\One_Site_Project\env_one_site_37\lib\site-packages\django\contrib\auth\templates\test\new_site_list.html (Source does not exist)
django.template.loaders.app_directories.Loader: D:\workspace\One_Site_Project\env_one_site_37\lib\site-packages\rest_framework\templates\test\new_site_list.html (Source does not exist)
我不知道IIS为什么要在virtualenv目录中搜索我的模板文件。
我的视图渲染代码是
@method_decorator(csrf_exempt, name='dispatch')
class NewSiteListUpdate(View):
"""
This class is used to list all the new site activity, also update an activity
"""
def get(self, request, *args, **kwargs):
"""
List all the activity info or a particular activity info
:param request:
:param args:
:param kwargs:
:return:
"""
if request.user.is_staff:
self.data = ActivityInformation.objects.all()
self.radius = 11111
return render(request, 'test/new_site_list.html', {'data': self.data})
以下是我在settings.py文件中的模板设置,
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [BASE_DIR + '/template/'],
'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',
],
# 'builtins': [
# 'src.huawei.templatetags.custom_tags'
# ],
'libraries':{
'custom_tags': 'templatetags.custom_tags',
},
},
},
]
下面是我的项目结构,
这在我的本地系统上运行良好。我也尝试将模板文件夹添加到虚拟目录中,但是没有用,仍然显示相同的错误。我遵循了this教程,以便在IIS上设置我的应用程序。
我正在使用python 3.7和IIS 8.5
我花了两天时间解决此问题,但没有找到与此相关的任何解决方案。
任何帮助将不胜感激。提前致谢。
答案 0 :(得分:0)
我认为您必须修改代码中的某些部分
settings.py
尝试将'DIRS':[BASE_DIR +'/ template /'] 更改为'DIRS'= [os.path.join(BASE_DIR,'template'),]
views.py 渲染功能创建的路径为: ../ template / huawei / new_site_list.html ,但是在项目结构中您没有文件夹 huawei 。您必须编写:返回渲染(请求,'test / new_site_list.html',{'data':self.data})