TemplateDoesNotExist Error Django not-defined template appers
Сначала я получил сообщение об ошибке в веб-браузере здесь.
В нем говорится,
'TemplateDoesNotExist at /
index.html, base/item_list.html'.
В сообщении об ошибке консоли говорится,
Internal Server Error: /
Traceback (most recent call last):
File "C:\Users\kgwtm\Desktop\Django\Django-Fujimoto\VegeKet\venv\lib\site-packages\django\core\handlers\exception.py", line 47, in inner
response = get_response(request)
File "C:\Users\kgwtm\Desktop\Django\Django-Fujimoto\VegeKet\venv\lib\site-packages\django\core\handlers\base.py", line 204, in _get_response
response = response.render()
File "C:\Users\kgwtm\Desktop\Django\Django-Fujimoto\VegeKet\venv\lib\site-packages\django\template\response.py", line 105, in render
self.content = self.rendered_content
File "C:\Users\kgwtm\Desktop\Django\Django-Fujimoto\VegeKet\venv\lib\site-packages\django\template\response.py", line 81, in rendered_content
template = self.resolve_template(self.template_name)
File "C:\Users\kgwtm\Desktop\Django\Django-Fujimoto\VegeKet\venv\lib\site-packages\django\template\response.py", line 63, in resolve_template
return select_template(template, using=self.using)
File "C:\Users\kgwtm\Desktop\Django\Django-Fujimoto\VegeKet\venv\lib\site-packages\django\template\loader.py", line 47, in select_template
raise TemplateDoesNotExist(', '.join(template_name_list), chain=chain)
django.template.exceptions.TemplateDoesNotExist: pages/index.html, base/item_list.html
[23/Feb/2022 16:19:38] "GET / HTTP/1.1" 500 83837
Во-первых, я даже не создаю и не объявляю 'base/item_list.html' в каком-либо файле в проекте Django.
Я создал проект 'config' и приложение 'base'.
Организация файла 'config' проекта здесь.
Организация файла 'base' приложения здесь.
config/urls.py здесь.
from django.contrib import admin
from django.urls import path
from base import views
urlpatterns = [
path('admin/', admin.site.urls),
path('', views.IndexListView.as_view()),
]
base/views/item_views.py здесь
from django.shortcuts import render
from django.views.generic import ListView
from base.models import Item
class IndexListView(ListView):
model = Item
template_name = 'pages/index.html'
base/views/init.py здесь.
from .item_views import *
Итак, templates/pages/index.html здесь.
{% extends 'base.html' %}
{% block main %}
{% for object in object_list %}
<p>
<a href="/items/{{object.pk}}/">
{{object.name}} - ¥{{object.price}}
</a>
</p>
{% endfor %}
{% endblock %}
На всякий случай, models.py (в данном случае models/item_models.py) здесь.
from django.db import models
from django.utils.crypto import get_random_string
import os
def create_id():
return get_random_string(22)
def upload_image_to(instance, filename):
item_id = instance.id
return os.path.join('static', 'items', item_id, filename)
class Tag(models.Model):
slug = models.CharField(max_length=32, primary_key=True)
name = models.CharField(max_length=32)
def __str__(self):
return self.name
class Category(models.Model):
slug = models.CharField(max_length=32, primary_key=True)
name = models.CharField(max_length=32)
def __str__(self):
return self.name
class Item(models.Model):
id = models.CharField(default=create_id, primary_key=True, max_length=22,
editable=False)
name = models.CharField(default='', max_length=50)
price = models.PositiveIntegerField(default=0)
stock = models.PositiveIntegerField(default=0)
description = models.TextField(default='', blank=True)
sold_count = models.PositiveIntegerField(default=0)
is_published = models.BooleanField(default=False)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
image = models.ImageField(default='', blank=True,
upload_to=upload_image_to)
category = models.ForeignKey(
Category, on_delete=models.SET_NULL, null=True, blank=True
)
tags = models.ManyToManyField(Tag)
def __str__(self):
return self.name
models/init.py имеет следующий вид.
from .item_models import *
Я думаю, что подобная проблема рассматривается в этой теме.
У меня нет никакого понятия о 'base/item_list.html'.
Не могли бы вы мне помочь?
Заранее спасибо.
Элементарная ошибка.
Я отредактировал файл settings.py следующим образом.
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [BASE_DIR / 'tamplates'],
'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',
],
},
},
]
Итак, я должен отредактировать строку 'DIRS': [BASE_DIR / 'tamplates'],
к 'DIRS': [BASE_DIR / 'templates'],
.