Django plotly da sh - приложение, возвращающее полностью пустую страницу при использовании django bootstrap компонентов - PullRequest
0 голосов
/ 16 апреля 2020

Я создаю веб-приложение с Django и Da sh и отличным пакетом django_plotly_da sh. Все работает без сбоев, за исключением случаев, когда я пытаюсь включить Django bootstrap компонентов. Добавление даже одного компонента Django bootstrap приводит к абсолютно пустой странице - даже исчезают html -dvs из django_plotly_da sh. Кроме того, опция external_stylesheets, похоже, полностью игнорируется, даже когда add_bootstrap_links=True.

Это приводит к ожидаемому результату:

import dash_html_components as html
from django_plotly_dash import DjangoDash
import dash_bootstrap_components as dbc

dis = DjangoDash("test_app_dash",
                 add_bootstrap_links=True)

dis.layout = html.Div(
    [
        html.H1("THIS WORKS FINE"),        
    ]
)

В то время как это создает полностью пустую страницу (без каких-либо исключений):

import dash_html_components as html
from django_plotly_dash import DjangoDash
import dash_bootstrap_components as dbc

dis = DjangoDash("test_app_dash",
                 add_bootstrap_links=True)

dis.layout = html.Div(
    [
        html.H1("THIS WORKS FINE"),
        dbc.Alert("THIS DOES NOT WORK", id="base-alert", color="primary"),    
    ]
)

Вот некоторые из ключевых файлы для минимального рабочего примера (см. снимок экрана с полной структурой проекта ):

test_app views.py:

from django.shortcuts import render 
from . import test_app_dash

def test(request):
    return render(request, "test_app/test.html")

main urls.py:

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

urlpatterns = [
    path("", include("test_app.urls")),
    path('admin/', admin.site.urls),
    path('django_plotly_dash/', include('django_plotly_dash.urls'))
]

test_app urls.py:

from django.urls import path
from . import views as test_views

urlpatterns = [
    path("", test_views.test, name = "test")
]

фрагмент из settings.py:

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

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

X_FRAME_OPTIONS = 'SAMEORIGIN'

ASGI_APPLICATION = "test_app.routing.application"

test. html:

{% load plotly_dash %}

{% plotly_app name="test_app_dash" %}

It было бы здорово, если бы кто-то мог пролить свет на это! Я в тупике. Дайте мне знать, если вам нужна дополнительная информация.

...