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#