首先,我在web浏览器上收到一条错误消息。
上面写着,
'TemplateDoesNotExist at/
index.html,base/item_list.html'.
控制台错误信息显示,
Internal Server Error: /
Traceback (most recent call last):
File "C:UserskgwtmDesktopDjangoDjango-FujimotoVegeKetvenvlibsite-packagesdjangocorehandlersexception.py", line 47, in inner
response = get_response(request)
File "C:UserskgwtmDesktopDjangoDjango-FujimotoVegeKetvenvlibsite-packagesdjangocorehandlersbase.py", line 204, in _get_response
response = response.render()
File "C:UserskgwtmDesktopDjangoDjango-FujimotoVegeKetvenvlibsite-packagesdjangotemplateresponse.py", line 105, in render
self.content = self.rendered_content
File "C:UserskgwtmDesktopDjangoDjango-FujimotoVegeKetvenvlibsite-packagesdjangotemplateresponse.py", line 81, in rendered_content
template = self.resolve_template(self.template_name)
File "C:UserskgwtmDesktopDjangoDjango-FujimotoVegeKetvenvlibsite-packagesdjangotemplateresponse.py", line 63, in resolve_template
return select_template(template, using=self.using)
File "C:UserskgwtmDesktopDjangoDjango-FujimotoVegeKetvenvlibsite-packagesdjangotemplateloader.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
首先,我甚至不会在Django项目中的任何文件中创建或声明"base/item_list.html"。
我已经创建了"配置"项目和"基础"应用程序。
此处为项目"配置"文件组织。
此处为应用程序"基本"文件组织。
config/uls.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'],
至CCD_ 2。