Текущий путь, /django_plotly_dash/app/test/, не соответствует ни одному из этих путей

У нас есть платформа, развернутая на Django, и мы хотели внедрить приборную панель, созданную с помощью plotly и dash, в существующее приложение Django, которое у нас есть. Я следовал некоторым руководствам и интегрировал приложение dashboard так, как это делали все, но всякий раз, когда я пытался перейти к url приложения, я получал следующее сообщение: Текущий путь, /django_plotly_dash/app/test/, не соответствует ни одному из этих путей.

Я создал приложение cars_dashboard.

settings.py:

MIDDLEWARE = [
    'django_plotly_dash.middleware.BaseMiddleware'
]

INSTALLED_APPS = [    
    'django_plotly_dash.apps.DjangoPlotlyDashConfig',
    'channels',
    'channels_redis',
    'cars_dashboard'
]

CRISPY_THEME_PACK = 'bootstrap4'
ASGI_APPLICATION = 'cars_dashboard.routing.application'

PLOTLY_DASH = {
  'stateless_loader': 'cars_dashboard.dash_app.cars_dashboard',
  'cache_arguments': False,
  'serve locally': False
}

CHANNEL_LAYERS = {
    'default': {
        'BACKEND': 'channels_redis.core.RedisChannelLayer',
        'CONFIG': {
            'hosts': [
                ('127.0.0.1', 6379),
                      ],
        },
    },
}

STATICFILES_FINDERS = [
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
    'django_plotly_dash.finders.DashAssetFinder',
    'django_plotly_dash.finders.DashComponentFinder',
    'django_plotly_dash.finders.DashAppDirectoryFinder',
]

PLOTLY_COMPONENTS = [
    'dash_core_components',
    'dash_html_components',
    'dash_bootstrap_components',
    'dash_renderer',
    'dpd_components',
    'dpd_static_support',
]

на главном сайте urls.py:

urlpatterns = [
    path('django_plotly_dash/', include('django_plotly_dash.urls')),
    path('cars_dashboard/', include('cars_dashboard.urls')),
]

cars_dashboard views.py

import django_plotly_dash
from django.shortcuts import render, HttpResponse


def home(request):
    return render(request, 'cars_dashboard.html')

cars_dashboard urls.py

from django.urls import path
from . import views
from .dash_app import cars_dashboard


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

Третья строка в приведенном выше коде импортирует скрипт cars_dashboard.py, который содержит код для приборной панели и находится в ./cars_dashboard/dash_app/cars_dashboard.py

Хотя мне нужно реализовать приборную панель, но в процессе ее отладки я создал очень простую приборную панель, которая содержит только html div для простоты. cars_dashboard.py:

import dash_html_components as html
from django_plotly_dash import DjangoDash

external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']

app = DjangoDash('test', external_stylesheets=external_stylesheets)

app.layout = html.Div([
    html.H1('Test Dashboard'),
])

В скрипте выше я удалил строку:

app.layout = html.Div([
    html.H1('Test Dashboard'),
])

а затем запустил приложение и получил ошибку, что должен быть возвращен макет тире, что, конечно, означает, что это приложение доступно.

Я проверил модель StateApps в Django Admin и там создано приложение по имени 'test'. Но модель DashApps всегда пуста.

Я также попробовал понизить django_plotly_dash и dash до рекомендованных версий, но и там не получилось.

Моя текущая версия Django - 3.2.9, и я не могу перейти на другую версию, потому что это нарушит совместимость всего моего проекта. У меня также есть celery, реализованный в нем для работы бэкенда. Может ли это быть причиной такого поведения?

Вернуться на верх