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'],.

Вернуться на верх