Django направляет все запросы дочернему приложению вместо mainapp - PullRequest
0 голосов
/ 19 марта 2019

Вот дерево моего проекта:

├── db.sqlite3
├── kitchen_analytics
│   ├── settings.py
│   ├── static_html
│   ├── urls.py
│   └── wsgi.py
├── manage.py
├── statistics101
│   ├── admin.py
│   ├── apps.py
│   ├── computation_logic
│   │   └── dish_count.py
│   ├── migrations
│   ├── models_default.py
│   ├── models.py
│   ├── statsrouter.py
│   ├── templates
│   │   └── statistics101
│   │       └── orders_list.html
│   ├── tests.py
│   ├── urls.py
│   └── views.py
└── templates
    └── index.html

Я пытаюсь добавить простую HTML-страницу индекса, вот моя конфигурация urlpatterns из kitchen_analytics/urls.py:

urlpatterns = [
    path('', TemplateView.as_view(template_name='index.html')),
    path('admin/', admin.site.urls),
    path('', include(statistics101.urls, namespace='statistics101')),
]

КогдаЯ захожу на http://127.0.0.1:8000/ Я получаю шаблон не найдена ошибка.Django пытается зайти в приложение statistics101 и ищет там index.html.Как это исправить?

Также по какой-то причине я должен хранить шаблоны для statistics101 приложения в templates/statistics101 вместо просто templates.Как мне сохранить это в шаблонах?

Вот ошибка:

TemplateDoesNotExist at /
index.html
Request Method: GET
Request URL:    http://127.0.0.1:8000/
Django Version: 2.1.7
Exception Type: TemplateDoesNotExist
Exception Value:    
index.html
Exception Location: /home/aydar/PycharmProjects/kitchen_analytics/venv/lib/python3.6/site-packages/django/template/loader.py in select_template, line 47
Python Executable:  /home/aydar/PycharmProjects/kitchen_analytics/venv/bin/python
Python Version: 3.6.8
Python Path:    
['/home/aydar/PycharmProjects/kitchen_analytics',
 '/usr/lib/python36.zip',
 '/usr/lib/python3.6',
 '/usr/lib/python3.6/lib-dynload',
 '/home/aydar/PycharmProjects/kitchen_analytics/venv/lib/python3.6/site-packages',
 '/home/aydar/PycharmProjects/kitchen_analytics/venv/lib/python3.6/site-packages/setuptools-39.1.0-py3.6.egg']
Server time:    Tue, 19 Mar 2019 14:24:12 +0000

Вот посмертное вскрытие загрузчика шаблона:

Using engine django:

django.template.loaders.app_directories.Loader: /home/uname/PycharmProjects/kitchen_analytics/statistics101/templates/index.html (Source does not exist)
django.template.loaders.app_directories.Loader: /home/uname/PycharmProjects/kitchen_analytics/venv/lib/python3.6/site-packages/django/contrib/admin/templates/index.html (Source does not exist)
django.template.loaders.app_directories.Loader: /home/uname/PycharmProjects/kitchen_analytics/venv/lib/python3.6/site-packages/django/contrib/auth/templates/index.html (Source does not exist)

вот настройка шаблонов из настроек.py

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',
            ],
        },
    },
]

1 Ответ

1 голос
/ 19 марта 2019

Ваш каталог шаблонов верхнего уровня отсутствует в настройках DIRS ваших шаблонов. Вы должны добавить это:

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')],
        ...
    }
]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...