Django шаблоны не будут загружаться, но HttpResponse будет - PullRequest
0 голосов
/ 11 марта 2020

Я недавно начал изучать django и столкнулся с некоторыми проблемами, и я не могу понять, почему.

Моя проблема довольно проста: всякий раз, когда я пытаюсь запустить мою домашнюю страницу с шаблоном, она выдает ошибку 404.

Моя файловая иерархия такова:

crm
 accounts
  templates
   accounts
    dashboard.html
  urls.py
  views.py
 crm
  urls.py

В crm / urls у меня есть

from django.contrib import admin
from django.urls import path, include


urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('accounts.urls'))

Тогда в аккаунтах / URL есть

from django.urls import path
from . import views

urlpatterns = [
    path('', views.home, name='home'),
]

А во взглядах у меня есть

from django.shortcuts import render
from django.http import HttpResponse


def home(request):
    return render(request, 'accounts/dashboard.html')

Моя панель инструментов. html - это просто базовый c html файл с заголовком и h1, вот и все.

Кроме того, всякий раз, когда я меняю

return render(request, 'accounts/dashboard.html')

на

return HttpResponse('home')

в моей домашней функции решает показать.

1 Ответ

0 голосов
/ 11 марта 2020

Ваш dashboard.html находится внутри папки, поэтому на него следует ссылаться как accounts/dashboard.html

Соответствующие документы: https://docs.djangoproject.com/en/3.0/intro/tutorial03/#a -shortcut-render

В в их примере они используют polls/index.html (прокрутите немного вверх от связанной позиции в документах). Он аналогичен вашему accounts/dashboard.html в расположении (оба находятся в подпапках, как и должно быть).


Django ищет шаблоны в нескольких приложениях так же, как ищет данные c файлы. За исключением того, что вы можете «видеть» файлы stati c, копируемые в отдельную папку с помощью manage.py collectstatic, тогда как шаблоны «обнаруживаются» на месте и нигде не копируются. В facg, если вы запускаете manage.py runserver, то файлы stati c также обнаруживаются на месте, поэтому logi c остается тем же.
Одно отличие состоит в том, что загрузку шаблона можно изменить, используя другой набор загрузчиков ( документы на загрузчики шаблонов , но по умолчанию (и, как мне кажется, для большинства проектов) это сходство сохраняется.

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