Django & React: Подключение нескольких приложений из одного шаблона

Доброе утро,

Я хотел бы спросить, возможно ли подключить несколько приложений на django, каждое из которых использует свой собственный react frontend? Например: У меня есть одна главная страница, которая содержит все ссылки на различные приложения...

Folder-Structure:

|- project
|    |- app_main
|    |    |- templates
|    |    |   |- app_main
|    |    |   |   |- main.html
|    |- app_1
|    |    |- frontend_1 (react)
|    |    |   |- public
|    |    |   |    |- index.html
|    |- app_2
|    |    |- frontend_2 (react)
|    |    |   |- public
|    |    |   |   |- index.html

Как я понял - или по крайней мере так думаю - папка с html-файлами должна быть включена в template в settings.py...

settings.py

REACT_ROUTE_APP_1 = os.path.join(BASE_DIR, 'app_1', 'frontend_1', 'public')
REACT_ROUTE_APP_2 = os.path.join(BASE_DIR, 'app_2', 'frontend_2', 'public')

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [
            REACT_ROUTE_APP_1,
            REACT_ROUTE_APP_2
        ],
        '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',
            ],
        },
    },
]

Правильный ли это способ или есть гораздо лучшее решение? И если это правильный выбор, то как я могу подключить url-маршрут внутри моего сайта?

main.html

<div>
    <a href="?">Link to App 1</a>
    <a href="?">Link to App 2</a>
</div>

Хотя я думал, что Django & React будет популярной комбинацией, я нашел только несколько связанных статей!

Спасибо за помощь и советы и удачной недели!

Ваша структура папок в порядке, вам следует использовать URL-маршрутизатор для перенаправления из основного приложения в другие приложения

main urls.py

urlpatterns = [
    path("", include('main.urls')), 
    path("app_1/", include('app_1.urls')), 
    path("app_2", include('app_2.urls')), 

]

И в вашем app_1 urls.py :

urlpatterns = [
   path('',(TemplateView.as_view(
      template_name="app_1/index.html",
  )), name='index.html'),
]

html


<div>
    #URI + "app_1"
    <a href="app_1">Link to App 1</a>
</div>

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