Derive API URLs app_name for plugins from url_slug

This commit is contained in:
Jeremy Stretch 2020-03-23 14:03:04 -04:00
parent 2732e7c3d9
commit ce0b1733fe

View File

@ -1,9 +1,6 @@
import importlib
from django.apps import apps from django.apps import apps
from django.conf import settings from django.conf import settings
from django.conf.urls import include from django.conf.urls import include
from django.core.exceptions import ImproperlyConfigured
from django.urls import path from django.urls import path
from django.utils.module_loading import import_string from django.utils.module_loading import import_string
@ -21,25 +18,21 @@ for plugin in settings.PLUGINS:
# Check if the plugin specifies any URLs # Check if the plugin specifies any URLs
try: try:
urlpatterns = import_string(f"{plugin}.urls.urlpatterns") urlpatterns = import_string(f"{plugin}.urls.urlpatterns")
except ImportError:
# No urls defined
urlpatterns = None
if urlpatterns:
plugin_patterns.append( plugin_patterns.append(
path(f"{url_slug}/", include((urlpatterns, app.label))) path(f"{url_slug}/", include((urlpatterns, app.label)))
) )
except ImportError:
pass
# Check if the plugin specifies any API URLs # Check if the plugin specifies any API URLs
try: try:
urlpatterns = import_string(f"{plugin}.api.urls.urlpatterns") urlpatterns = import_string(f"{plugin}.api.urls.urlpatterns")
app_name = import_string(f"{plugin}.api.urls.app_name") app_name = f"{url_slug}-api"
except ImportError:
# No urls defined
urlpatterns = None
if urlpatterns:
plugin_api_patterns.append( plugin_api_patterns.append(
path(f"{url_slug}/", include((urlpatterns, app_name))) path(f"{url_slug}/", include((urlpatterns, app_name)))
) )
except ImportError:
pass
# Plugin list admin view # Plugin list admin view
admin_plugin_patterns = [ admin_plugin_patterns = [