Bienvenido a Django 1.2.4!
Esta es la traducción de los textos:
Con una excepción, Django 1.2.4 mantiene compatibilidad hacia atrás con Django 1.2.3. También contiene un número de correcciones y mejoras. Django 1.2.4 es un upgrade recomendado para cualquier desarrollo o implementación que esté utilizando o apuntando a Django 1.2.
Para obtener detalles completos sobre las nuevas características, incompatibilidades hacia atrás y características obsoletas en la rama 1.2, consulte el Notas de lanzamiento de Django 1.2.
La interfaz administrativa de Django, django.contrib.admin, admite la filtración de listas de objetos mostradas por campos en los modelos correspondientes, incluyendo a través de relaciones entre bases de datos. Esto se implementa pasando argumentos de búsqueda en la parte de consulta de la URL y las opciones en la clase ModelAdmin permiten a los desarrolladores especificar campos o relaciones particulares que generarán enlaces automáticos para filtrar.
Una característica históricamente no documentada ni oficialmente soportada ha sido la capacidad de un usuario con suficiente conocimiento de la estructura de un modelo y el formato de estos argumentos de búsqueda para inventar nuevos filtros útiles «a mano» manipulando la consulta.
Sin embargo, se ha demostrado que esto puede ser abusado para obtener acceso a información fuera de las permisos de un usuario administrador; por ejemplo, un atacante con acceso al panel de administración y suficiente conocimiento de la estructura y relaciones de modelos podría construir cadenas de consulta que – mediante el uso repetido de consultas de expresiones regulares admitidas por la API de bases de datos Django – expongan información sensible como hashes de contraseñas de usuarios.
Para remediar esto, django.contrib.admin ahora validará que los argumentos de búsqueda en cadena de consulta especificen solo campos del modelo que se está visualizando o relaciones cruzadas que hayan sido explícitamente permitidas por el desarrollador de la aplicación utilizando el mecanismo existente mencionado anteriormente. Esto es incompatible con cualquier usuario que dependa de la capacidad previa para insertar búsquedas arbitrarias.
Ordinariamente, una versión puntual no incluiría nuevas características, pero en el caso de Django 1.2.4, hemos hecho una excepción a esta regla.
Una de las correcciones realizadas en Django 1.2.4 implica un conjunto de circunstancias en las que ejecutar un conjunto de pruebas en una configuración de bases de datos múltiples podría causar la eliminación de la base de datos original (es decir, la base de datos real de producción), lo que provocaría pérdida catastrófica de datos. Para proporcionar una corrección para este problema, fue necesario introducir un nuevo parámetro – TEST_DEPENDENCIES – que permite definir cualquier dependencia de creación en la configuración de bases de datos.
La mayoría de los usuarios – incluso aquellos con configuraciones de bases de datos múltiples – no deben preocuparse por el bug de pérdida de datos, o la configuración manual de TEST_DEPENDENCIES. Consulte la documentación del problema original en #14415 y las referencias a controlar el orden de creación de bases de datos de prueba para obtener más detalles.
La función basada en procedimientos – TEST_RUNNER – utilizada anteriormente para ejecutar la suite de pruebas GeoDjango, django.contrib.gis.tests.run_gis_tests, fue finalmente descontinuada a favor de un ejecutor de pruebas basado en clases, django.contrib.gis.tests.GeoDjangoTestSuiteRunner, agregado en este lanzamiento.
Además, la suite de pruebas GeoDjango ahora se incluye cuando se ejecuta la suite de pruebas Django con runtests.py y utilizando backends de bases de datos espaciales.
may 31, 2026