当我尝试执行该函数时,我得到(TemplateDoesNotExist at / search /) 我的模板文件夹位于C:\ Users \ Rafik \ Documents \ myproject \ env_mysite \ Scripts \ mysie \ books \ templates python代码运行正常,但它说TemplateDoesNotExist
views.py:
def搜索(请求):
error = False
if 'q' in request.GET:
q = request.GET['q']
if not q:
error = True
elif len(q) > 20:
error = True
else:
books = Book.objects.filter(title__icontains=q)
return render(request, 'search_results.html', {'books': books, 'query': q})
return render(request, 'search_form.html', {'error': error})
应用/ urls.py:
来自django.conf.urls import url
来自图书导入视图
urlpatterns = [
url(r'^search-form/$', views.search_form),
url(r'^search/$', views.search)
TEMPLATE settings.py
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR,'templates')],
'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',
],
},
},
答案 0 :(得分:3)
我是作为作者的stackoverflow的新手,所以请原谅我没有在这里使用适当的标记。通过Django 2.0教程(更具体地说:在Tutorial03中,从loader.get_template()切换到shortcuts.render()之后),我遇到了同样的错误。以下解决方案最终证明对我有用:
我的环境是在Windows 10(和cygwin)下使用CPython 3.6.4的Django 2.0.2。希望这会有所帮助。