Я пытаюсь загрузить шаблон страницы html, но появляется сообщение об ошибке. То, что я пытаюсь отладить, все еще плохо знакомо с django, но большую часть времени я могу понять это. Но в полной потере на этом.
Что-то связанное с движком шаблонов либо в setting.py, либо в представлении шаблона, либо в URL. Я думаю, что-то в настройках шаблона.
Я сделал несколько поисков без удачи. Там нет ошибок в консоли отладки в виртуальной студии. Как раз когда я go URL из шаблонов html. Любая обратная связь или советы о том, как лучше прочитать ошибку, будут оценены.
"Set a unique NAME for each engine in settings.TEMPLATES."
.format(", ".join(duplicates)))
return templates
def __getitem__(self, alias):
try:
return self._engines[alias]
…
except KeyError:
try:
params = self.templates[alias]
except KeyError:
raise InvalidTemplateEngineError(
"Could not find config for '{}'
Я предполагаю, что должен настроить basic_app / school_detail. html в разделе шаблонов файла settings.py. Вот где я застрял.
поднять InvalidTemplateEngineError (django .template.utils.InvalidTemplateEngineError: Не удалось найти конфигурацию для 'basic_app / school_detail. html' в настройках.TEMPLATES
Это ошибка, которая возникает.
InvalidTemplateEngineError at / basic_app / 1 /
Не удалось найти конфигурацию для 'basic_app / school_detail. html' в настройках.TEMPLATES
Метод запроса: GET URL запроса: http://127.0.0.1: 8000 / basic_app / 1 / Django Версия: 3.0.4 Тип исключения: InvalidTemplateEngineError Значение исключения:
Не удалось найдите конфигурацию для 'basic_app / school_detail. html' в настройках. ШАБЛОНЫ
Расположение исключения: C: \ Users \ taylo \ AppData \ Local \ Programs \ Python \ Python38-32 \ lib \ site- пакеты \ django \ template \ utils.py в getitem , строка 71 Python Исполняемый файл: C: \ Users \ taylo \ AppData \ Local \ Programs \ Python \ Python38-32 \ python. exe Python версия: 3.8.2 Python путь:
['C: \ Users \ taylo \ djan go \ Advanced_Django_CBV \ advcbv ',' C: \ Python \ Python37 \ Lib ',' C: \ Python \ Python37 \ DLLs ',' C: \ Python \ Python37 \ Lib \ lib-tk ', 'C: \ Python \ Python37 \ Scripts', 'C: \ Python \ Python37 \ tcl', 'C: \ Python \ Python37 \ Tools', 'C: \ Users \ taylo \ AppData \ Local \ Programs \ Python \ Python38-32 \ python38.zip ',' C: \ Users \ taylo \ AppData \ Local \ Programs \ Python \ Python38-32 \ DLLs ',' C: \ Users \ taylo \ AppData \ Local \ Programs \ Python \ Python38-32 \ lib ',' C: \ Users \ taylo \ AppData \ Local \ Programs \ Python \ Python38-32 ',' C: \ Users \ taylo \ AppData \ Roaming \ Python \ Python38 \ site-packages ',' C: \ Users \ taylo \ AppData \ Local \ Programs \ Python \ Python38-32 \ lib \ site-packages ']
Время сервера: Пн, 4 мая 2020 г. 16:24:46 + 0000
=============================== =========================================
settings.py
================================================== ==============
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
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',
],
},
},
]
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/3.0/howto/static-files/
STATIC_URL = '/static/'
=========================== =======================================
* 104 7 * School_detail. html
==================================== ===========================
{% extends "basic_app/basic_app_base.html" %}
{% block body_block %}
<div class="jumbotron">
<h1>Welcome to the School Detail Page </h1>
<h2></h2>
<p><b>Name: </b>{{school_detail.name}}</p>
<p><b>Principal: </b> {{school_detail.principal}}</p>
<p><b>Location: </b>{{school_detail.location}}</p>
<h3><b>Students: </b></h3>
{% for student in school_detail.students.all %}
<p>{{student.name}} who's student id is {{student.info}}</p>
{% endfor %}
</div>
{% endblock %}
================================================= ==================
basic_app. html
from django.db import models
# Create your models here.
class School(models.Model):
name = models.CharField(max_length=256)
Principal = models.CharField(max_length=256)
location = models.CharField(max_length=256)
def __str__(self):
return self.name
class Student(models.Model):
name = models.CharField(max_length=256)
info = models.CharField(max_length=256)
School = models.ForeignKey(School, on_delete=models.CASCADE, related_name='students')
def __str__(self):
return self.name
изображение каталога
urls.py
from django.conf.urls import url
from basic_app import views
app_name = 'basic_app'
urlpatterns = [
url(r'^$',views.SchoolListView.as_view(),name='list'),
url(r'^(?P<pk>[-\w]+)/$', views.SchoolDetailView.as_view(), name='detail')
]
views.py
from django.shortcuts import render
from django.views.generic import View, TemplateView, ListView, DetailView
from . import models
class IndexView(TemplateView):
template_name = 'index.html'
class SchoolListView(ListView):
context_object_name = 'schools'
model = models.School
# returns school_list
class SchoolDetailView(DetailView):
context_object_name = 'school_detail'
model = models.School
template_engine = 'basic_app/school_detail.html'
Я пытался изменить settings.py
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [TEMPLATE_DIR,],
'APP_DIRS': True,
Я также изменил это, но не сделал не работает
import os
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
TEMPLATE_DIR = os.path.join(BASE_DIR,'templates')