TemplateDoesNotExist, хотя файл существует - PullRequest
0 голосов
/ 02 апреля 2020

enter image description here

Я получаю эту ошибку, хотя файл существует - почему?

enter image description here

Редактировать:

enter image description here

enter image description here

Дополнительное редактирование:

from django.shortcuts import render

# Create your views here.

from catalog.models import Book, Author, BookInstance, Genre

def index(request):
    """View function for home page of site."""

    # Generate counts of some of the main objects
    num_books = Book.objects.all().count()
    num_instances = BookInstance.objects.all().count()

    # Available books (status = 'a')
    num_instances_available = BookInstance.objects.filter(status__exact='a').count()

    # The 'all()' is implied by default.    
    num_authors = Author.objects.count()

    context = {
        'num_books': num_books,
        'num_instances': num_instances,
        'num_instances_available': num_instances_available,
        'num_authors': num_authors,
    }

    # Render the HTML template index.html with the data in the context variable
    return render(request, 'index.html', context=context)

Там написано, что я написал недостаточно, потому что слишком много кода и нет описания. Поэтому я печатаю, чтобы обойти эту ошибку.

1 Ответ

0 голосов
/ 02 апреля 2020

Ваша настройка выглядит правильно, за исключением того, что вы не пытаетесь предоставить каталог. Это может быть проблемой. Вот мои настройки для одного из моих проектов

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [],
        '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 может не указывать на то, где вы находитесь. Вы можете попробовать это в Django Консоль

Активировать виртуальную среду $ source venv/bin/activate Затем запустить python manage.py shell

в оболочке:

>>> from project.settings import TEMPLATES
>>> print(TEMPLATES['DIRS'])

Имеет ли вывод указать, где вы ожидаете это?

===== РЕДАКТИРОВАТЬ

Я вижу, Django ищет ваш шаблон в / catalog / где на самом деле ваш шаблон фактически живет в приложении / catalog / templates /, поэтому ваша директива DIRS не указывает на правильный путь.

Если вы удалите каталог в DIRS, Django переместится в каталог вашего каталога для папки с именем templates и найдет ваш index.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...