Skip to content
Snippets Groups Projects

Resolve "Apps should be able to register URLs for API stuff which are not mounted under /django/"

+ 14
4
from importlib import import_module
from django.apps import apps
from django.conf import settings
from django.contrib import admin
@@ -410,10 +412,18 @@ for app_config in apps.app_configs.values():
continue
try:
urlpatterns.append(
path(f"django/app/{app_config.label}/", include(f"{app_config.name}.urls"))
)
except ModuleNotFoundError:
urls_module = import_module(f"{app_config.name}.urls")
if hasattr(urls_module, "urlpatterns"):
urlpatterns.append(
path(f"django/app/{app_config.label}/", include(urls_module.urlpatterns))
)
if hasattr(urls_module, "api_urlpatterns"):
urlpatterns.append(
path(f"app/{app_config.label}/", include(urls_module.api_urlpatterns))
)
except ImportError:
# Ignore exception as app just has no URLs
pass # noqa
Loading