Estructura de URL#
Enrutamiento y organización de URL en Construbot.
URL raíz#
Archivo: 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')),
]
Modo biblioteca:
if not settings.CONSTRUBOT_AS_LIBRARY:
urlpatterns += [
path('admin/', admin.site.urls),
path('accounts/', include('allauth.urls')),
]
Patrones de URL por aplicación#
Aplicación de usuarios#
``/users/`` - Gestión de usuarios
/users/~redirect/- Redirigir a los detalles del usuario/users/~update/- Actualizar perfil de usuario/users/<nombre de usuario>/- Detalle del usuario
Aplicación Proyectos#
``/proyectos/`` - Lógica de negocio principal
/proyectos/contratos/- Listado de contratos/proyectos/contratos/create/- Crear contrato/proyectos/contratos/<id>/- Detalle del contrato/proyectos/contratos/<id>/edit/- Editar contrato/proyectos/contratos/<id>/delete/- Eliminar contrato/proyectos/estimaciones/- Listado de estimaciones/proyectos/contrapartes/- Lista de contrapartes
URL de API#
``/api/v1/`` - API REST
/api/v1/api-token-auth/- Obtener el token JWT/api/v1/api-token-refresh/- Actualizar token JWT/api/v1/contracts/- Puntos finales del contrato/api/v1/estimates/- Estimación de puntos finales
Espacios de nombres de URL#
Usando espacios de nombres:
# In templates
{% url 'proyectos:contract_list' %}
{% url 'users:detail' username=user.username %}
# In views
reverse('proyectos:contract_detail', kwargs={'pk': contract.id})
URL de administrador#
``/admin/`` - Administrador de Django (si no está en modo biblioteca)
URL de autocompletar#
django-autocompletar-luz:
urlpatterns = [
path('autocomplete/', include('dal.urls')),
]
URL estáticas/medios#
Solo desarrollo:
if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
Producción: Servido por WhiteNoise (estático) y Nginx/S3 (medios)
Ver también#
Descripción general - Architecture overview
API - API documentation