TemplateDoesNotExist в /boards/home.html

avatar
dankd123
9 августа 2021 в 05:12
52
1
0

Я создаю свой первый сайт с помощью Django и следую руководству. Учебник здесь.

Проблема, с которой я столкнулся, заключается в том, что при попытке загрузить сайт с использованием стандартного http://127.0.0.1:8000/ я получаю сообщение об ошибке

TemplateDoesNotExist at /
boards/home.html

Django говорит, что пытается пройти по этому пути: "C:\Users\myuser\Desktop\Development\myproject\myproject\boards\templates\boards\home.html (источник не существует)"

Когда я ввожу этот путь прямо в проводник, он без проблем загружает файл.

Вот мой urls.py:

from django.urls import path

from boards import views

urlpatterns = [
    path('', views.home, name='home'),
    path('admin/', admin.site.urls),
]

И мои views.py:

from .models import Board

def home(request):
    boards = Board.objects.all()
    return render(request, 'boards/home.html', {'boards': boards})

И в settings.py есть "доски" (название приложения) под заголовком INSTALLED_APPS.

Моя файловая структура выглядит так:

enter image description here

Надеюсь, кто-нибудь сможет помочь. Просто спросите, не пропустил ли я что-нибудь.

Источник
mhhabib
9 августа 2021 в 05:14
0

Пожалуйста, добавьте фото с хорошим разрешением

mhhabib
9 августа 2021 в 05:15
0

Однако расположение вашего шаблона должно быть myproject->boards->templates->boards->home.html.

dankd123
9 августа 2021 в 06:31
0

@mhhabib Ах, извините, у меня пока недостаточно репутации, чтобы вставлять изображение. Да, это именно то место, где находится файл, и именно там, кажется, Django его ищет.

Ответы (1)

avatar
Y. P
9 августа 2021 в 05:24
0

Я думаю, что каталог платы должен находиться в папке "C:\Users\myuser\Desktop\Development\myproject", а не в "C:\Users\myuser\Desktop\Development\myproject\myproject". Вот структура моего проекта Django.

.
├── README.md
├── core    <-- "board" in your project
│   ├── __init__.py
│   ├── admin.py
│   ├── apps.py
│   ├── models.py
│   ├── static
│   │   └── core
│   ├── templates
│   │   └── core
│   ├── tests.py
│   ├── urls.py
│   └── views.py
├── db.sqlite3
├── manage.py
├── scan_system    <-- "myproject" in your project
│   ├── __init__.py
│   ├── asgi.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
dankd123
9 августа 2021 в 06:33
0

Это в основном и моя структура, просто все завернуто в другую папку, содержащую основную папку проекта и папку виртуального конверта.

Y. P
9 августа 2021 в 13:49
0

Хорошо, а как насчет INSTALLED_APPS в settings.py? Вы добавили свое приложение? (Может быть, board.apps.BoardConfig)

dankd123
9 августа 2021 в 22:39
0

У меня есть «доски», но я попробую board.apps.BoardConfig. На трассировке страницы с ошибкой я вижу фактические данные, которые он пытается отобразить, он просто не может загрузить шаблон, несмотря на то, что файл существует именно в том месте, которое, по словам Джанго, он ищет. Интересно, может ли это иметь какое-то отношение к разрешениям? Или бывают случаи, когда Django видит файл, но не может его использовать из-за какой-то другой проблемы?

Y. P
10 августа 2021 в 01:36
0

См. docs.djangoproject.com/en/3.2/intro/tutorial02/…. У меня есть опыт, что мое приложение не может найти файл шаблона, потому что я не зарегистрировал приложение в файле settings.py проекта.

dankd123
11 августа 2021 в 05:48
0

Хммм, когда я это делаю, Django даже не пытается искать каталог шаблонов. «boards» позволяет хотя бы посмотреть, а «boards.app.BoardsConfig» — нет.