URL Structure#
URL routing and organization in Construbot.
Root URLs#
File: construbot/config/urls.py
urlpatterns = [
path('', UserRedirectView.as_view(), name='home'),
path('admin/', admin.site.urls),
path('accounts/', include('allauth.urls')),
path('users/', include('construbot.users.urls', namespace='users')),
path('proyectos/', include('construbot.proyectos.urls', namespace='proyectos')),
path('core/', include('construbot.core.urls', namespace='core')),
path('api/v1/', include('construbot.api.urls')),
]
Library mode:
if not settings.CONSTRUBOT_AS_LIBRARY:
urlpatterns += [
path('admin/', admin.site.urls),
path('accounts/', include('allauth.urls')),
]
URL Patterns by App#
Users App#
``/users/`` - User management
/users/~redirect/- Redirect to user detail/users/~update/- Update user profile/users/<username>/- User detail
Proyectos App#
``/proyectos/`` - Main business logic
/proyectos/contratos/- Contract list/proyectos/contratos/create/- Create contract/proyectos/contratos/<id>/- Contract detail/proyectos/contratos/<id>/edit/- Edit contract/proyectos/contratos/<id>/delete/- Delete contract/proyectos/estimaciones/- Estimate list/proyectos/contrapartes/- Counterparty list
API URLs#
``/api/v1/`` - REST API
/api/v1/api-token-auth/- Obtain JWT token/api/v1/api-token-refresh/- Refresh JWT token/api/v1/contracts/- Contract endpoints/api/v1/estimates/- Estimate endpoints
URL Namespaces#
Using namespaces:
# In templates
{% url 'proyectos:contract_list' %}
{% url 'users:detail' username=user.username %}
# In views
reverse('proyectos:contract_detail', kwargs={'pk': contract.id})
Admin URLs#
``/admin/`` - Django admin (if not library mode)
Autocomplete URLs#
django-autocomplete-light:
urlpatterns = [
path('autocomplete/', include('dal.urls')),
]
Static/Media URLs#
Development only:
if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
Production: Served by WhiteNoise (static) and Nginx/S3 (media)