Notas de lanzamiento de Django 1.7.2

2 de enero de 2015

Django 1.7.2 corrige varios bugs en 1.7.1.

Además, se ha actualizado a la última versión (1.9.0) la versión de six que Django incluye en su código (django.utils.six).

Bugfixes

  • Se ha corregido la renombración de las tablas many-to-many auto-creadas al cambiar Meta.db_table (#23630).

  • Se ha corregido un crash de migración cuando se agrega un campo id explícito a un modelo en SQLite (#23702).

  • Se ha agregado una advertencia para modelos duplicados cuando se recarga un módulo. Anteriormente, se levantaba un RuntimeError cada vez que dos modelos colisionaban en el registro de aplicaciones (#23621).

  • Se ha evitado que flush cargue datos iniciales para aplicaciones migradas (#23699).

  • Se ha corregido una regresión de makemessages en 1.7.1 cuando STATIC_ROOT tiene el valor por defecto None (#23717).

  • Se ha agregado compatibilidad con GeoDjango del motor de base de datos mysqlclient.

  • Se ha corregido un crash de MySQL 5.6+ con GeometryFields en migraciones (#23719).

  • Se ha corregido un crash de migración cuando se elimina un campo que está referenciado en AlterIndexTogether o AlterUniqueTogether (#23614).

  • Se ha actualizado el primer día de la semana en la ubicación ucraniana a lunes.

  • Se han agregado funcionalidades de inicialización de metadatos espaciales transaccionales en SpatiaLite 4.1+ (#23152).

  • Se ha corregido un error de migración que impedía cambiar un campo nulo con un valor por defecto a no nulo con el mismo valor por defecto (#23738).

  • Se ha corregido un error de migración cuando se agregaban campos GeometryFields con blank=True en PostGIS (#23731).

  • Se permite el uso de DateTimeField() como Transform.output_field (#23420).

  • Se ha corregido un error de serialización de migración que involucraba float("nan") y float("inf") (#23770).

  • Se ha corregido una regresión donde los campos de formulario personalizados con la propiedad queryset pero sin limit_choices_to no podían usarse en un ModelForm (#23795).

  • Se ha corregido un error de validación del tipo de campo personalizado con MySQL backend cuando db_type devolvía None (#23761).

  • Se ha corregido un error de migración cuando un campo se renombraba que era parte de un index_together (#23859).

  • Se ha corregido a squashmigrations para respetar el parámetro --no-optimize (#23799).

  • Se ha hecho reversible la clase RenameModel (#22248)

  • Evitadas las rollbacks de migraciones de otras aplicaciones cuando se migra hacia atrás (#23410).

  • Se corrigió un error de consulta raro al utilizar subconsultas anidadas profundamente (#23605).

  • Se corrigió una caída en las migraciones al eliminar un campo que forma parte de una restricción index/unique_together (#23794).

  • Se corrigió django.core.files.File.__repr__() cuando el nombre del archivo contiene caracteres Unicode (#23888).

  • Se agregó contexto faltante a la vista de eliminación seleccionada del administrador que impedía que aparecieran encabezados de sitio personalizados, etc. (#23898).

  • Se ha corregido una regresión con inlines generados dinámicamente y referencias de campos permitidas en la administración (#23754).

  • Se corrigió un bug de bucle infinito para ciertas dependencias de migraciones cíclicas y se hizo el mensaje de error para las dependencias cíclicas mucho más útil.

  • Se agregó manejo faltante de index_together para SQLite (#23880).

  • Se corrigió una caída cuando el contenido SQL de RunSQL era recopilado por el editor de esquema, típicamente al utilizar sqlmigrate (#23909).

  • Se corrigió una regresión en las vistas de agregar/cambiar del administrador contribuyente que causaba que algunos métodos de ModelAdmin recibieran el valor incorrecto obj (#23934).

  • Se corrigió la caída de runserver cuando el mensaje de error de socket contenía caracteres Unicode (#23946).

  • Se han corregido las serializaciones de type cuando se agrega un método deconstruct() (#23950).

  • Se ha evitado que el middleware de autenticación de sesión django.contrib.auth.middleware.SessionAuthenticationMiddleware establezca un encabezado "Vary: Cookie" en todas las respuestas (#23939).

  • Se ha corregido una caída cuando se agrega blank=True a TextField() en MySQL (#23920).

  • Se han corregido las creaciones de índices por la infraestructura de migración, particularmente cuando se trata con índices específicos de PostgreSQL {text|varchar}_pattern_ops (#23954).

  • Se ha corregido un bug en makemigrations que creaba archivos de migración rotos cuando se trataba con herencia múltiple de tablas y heredar más de un modelo (#23956).

  • Se ha corregido una caída cuando un campo MultiValueField tiene datos inválidos (#23674).

  • Se ha corregido una caída en la administración cuando se utiliza «Guardar como nuevo» y también se elimina una relación inline (#23857).

  • Siempre se convierte related_name a texto (Unicode), ya que eso es necesario en Python 3 para interpolación. Se ha eliminado la conversión de related_name a texto en la descomposición de migraciones (#23455 y #23982).

  • Se han aumentado las tamaños de los tablespaces que se crean por defecto para pruebas en Oracle (la tabla principal se ha aumentado de 200M a 300M y la tabla temporal de 100M a 150M). Esto era necesario para acomodar el crecimiento en el conjunto de pruebas propio de Django (#23969).

  • Se han corregido las traducciones del filtro timesince en coreano (#23989).

  • Corregido el editor de esquemas SQLite para agregar correctamente los valores por defecto en ausencia de un valor de usuario especificado como default. Por ejemplo, un campo CharField con blank=True no establecía las filas existentes en una cadena vacía lo que provocaba un error cuando se agregaba la restricción NOT NULL (#23987).

  • makemigrations ya no solicita un valor por defecto cuando se agrega TextField() o CharField() sin default (#23405).

  • Se ha corregido un error de migración cuando se agrega order_with_respect_to a una tabla con filas existentes (#23983).

  • Restaurado el señal pre_migrate si todos los aplicaciones tienen migraciones (#23975).

  • He aquí la traducción del texto manteniendo todas las etiquetas intactas:

  • Poblado completamente el registro de aplicaciones antes de desempaquetar modelos. Cuando un script externo (como una infraestructura de cola) recarga modelos empaquetados, podría fallar con una excepción AppRegistryNotReady (#24007).

  • Se agregó citado a los índices de campos en la SQL generada por las migraciones para prevenir un error cuando el nombre del índice lo requiere (#24015).

  • Se ha agregado soporte para datetime.time a la pregunta de migraciones (#23998).

  • Fixed crash en la documentación de administración para aplicaciones instaladas como huevos (#23525).

  • Cambió el detección de migraciones a generar una operación AlterModelOptions en lugar de las operaciones DeleteModel y CreateModel cuando se cambia Meta.managed. Esto evita la pérdida de datos al cambiar managed de False a True y viceversa (#24037).

  • Enabled the sqlsequencereset command en aplicaciones con migraciones (#24054).

  • Se agregó la sentencia SQL de tablespaces a las aplicaciones con migraciones (#24051).

  • Corrigió la creación predeterminada del sitio contrib.sites en un entorno de múltiples bases de datos (#24000).

  • Se restauró el soporte para objetos que no son ni str ni bytes en django.utils.safestring.mark_for_escaping() en Python 3.

  • Se admitieron cadenas escapadas por bibliotecas de terceros con la convención __html__ en el motor de plantillas (#23831).

  • Se evitó SQL DROP DEFAULT innecesario en migraciones (#23581).

  • Se restauró la capacidad de utilizar más de cinco niveles de consultas anidadas (#23758).

  • Se corrigió el crash cuando se inicializa ValidationError con un ValidationError que se inicializa con un diccionario (#24008).

  • Se evitó un crash en aplicaciones sin migraciones al ejecutar migrate --list (#23366).