在/ myapp /" django" ModuleNotFoundError中获取此错误

时间:2017-07-26 11:26:05

标签: python django templates

我正在使用django版本11.3。我创建一个单独的HTML模板文件并导入我的views.py文件,当我运行此文件时,它给我一个错误。

/ myapp /

的ModuleNotFoundError

没有名为' django.templates'

的模块

我的settings.py文件代码:

TEMPLATES = [
{
    'BACKEND': 'django.templates.backends.django.DjangoTemplates',
    'DIRS': [os.path.join(BASE_DIR, 'templates')]
    ,
    'APP_DIRS': True,
    'OPTIONS': {
        'context_processors': [
            'django.templates.context_processors.debug',
            'django.templates.context_processors.request',
            'django.contrib.auth.context_processors.auth',
            'django.contrib.messages.context_processors.messages',
        ],
    },
},

views.py文件:

from django.http import HttpResponse
from django .template import loader
from .models import album

def myapp(request):
  all_albums = album.objects.all()
  template = loader.get_template('myapp/index.html')
  context = {
   'all_albums': all_albums,
  }
  return HttpResponse(template.render(context, request))

 def detail(request, id):
    return HttpResponse("<h1>Your requested numbers is: " + str(id) +"<h2>")

html文件:

<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <title>This is list item</title>
</head>
<body>
<ul>
    {% for a in all_albums %}
    <li><a href="/myapp/{{ a.id }}">{{ a.artist }}</a></li>
    {% endfor %}
</ul>
</body>
</html>

目录结构:

myapp > templates > myapp > index.html

1 个答案:

答案 0 :(得分:3)

您必须使用django.template而不使用s

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',
        ],
    },
}]`