Este documento describe cuándo se eliminarán o alterarán de manera incompatible a la inversa las diferentes piezas de Django, siguiendo su política de deprecación. Pueden encontrarse más detalles sobre cada elemento en los notas de liberación de dos versiones anteriores.
Ver la nota de lanzamiento de Django 5.2 <deprecated-features-5.2> para más detalles sobre estos cambios.
La palabra clave de argumento all de django.contrib.staticfiles.finders.find() será eliminada.
Los fallback a request.user y request.auser() cuando user es None en django.contrib.auth.login() y django.contrib.auth.alogin(), respectivamente, serán eliminados.
La palabra clave de ordenamiento (ordering) del argumento específico de las funciones de agregación PostgreSQL (django.contrib.postgres.aggregates.ArrayAgg, django.contrib.postgres.aggregates.JSONBAgg y django.contrib.postgres.aggregates.StringAgg) será eliminada.
Soporte para subclases de RemoteUserMiddleware que sobrescriban process_request() sin sobrescribir aprocess_request() se eliminará.
Ver la documentación de notas de lanzamiento de Django 5.0 <deprecated-features-5.0> para más detalles sobre estos cambios.
Los renderizadores de formulario transicionales DjangoDivFormRenderer y Jinja2DivFormRenderer serán eliminados.
Eliminación del soporte para pasar argumentos posicionales a BaseConstraint.
La traducción de los textos es la siguiente:
Dejará de caer hacia atrás a get_joining_columns() el django.db.models.sql.datastructures.Join.
Se eliminará el método get_joining_columns() del ForeignObject y ForeignObjectRel.
Se eliminará el método ForeignObject.get_reverse_joining_columns().
El esquema predeterminado para forms.URLField cambiará de "http" a "https".
Se eliminará el soporte para llamar a format_html() sin pasar args o kwargs.
Se eliminará el soporte para cx_Oracle.
Se eliminará BaseDatabaseOperations.field_cast_sql().
Se eliminará la aliasación de ChoicesMeta a django.db.models.enums.ChoicesType.
Se eliminará el método Prefetch.get_current_queryset().
El método get_prefetch_queryset() de los administradores y descriotores relacionados será eliminado.
get_prefetcher() y prefetch_related_objects() ya no caerán en get_prefetch_queryset().
La configuración transitoria FORMS_URLFIELD_ASSUME_HTTPS será eliminada.
Consulte las notas de lanzamiento de Django 5.1 <deprecated-features-5.1> para obtener más detalles sobre estos cambios.
Los métodos ModelAdmin.log_deletion() y LogEntryManager.log_action() serán eliminados.
La función no documentada django.utils.itercompat.is_iterable() y el módulo django.utils.itercompat serán eliminados.
El método django.contrib.gis.geoip2.GeoIP2.coords() será eliminado.
El método django.contrib.gis.geoip2.GeoIP2.open() será eliminado.
Se eliminará el soporte para pasar argumentos posicionales a Model.save() y Model.asave().
Se eliminará el setter de django.contrib.gis.gdal.OGRGeometry.coord_dim.
La traducción de los textos es la siguiente:
La argumento de palabra clave check de CheckConstraint será eliminado.
La atributo OS_OPEN_FLAGS de FileSystemStorage será eliminada.
El método get_cache_name() de FieldCacheMixin será eliminado.
Consulte las notas de lanzamiento de Django 4.2 <deprecated-features-4.2> para obtener más detalles sobre estos cambios.
El método BaseUserManager.make_random_password() será eliminado.
La opción del modelo Meta.index_together será eliminada.
El filtro de plantilla length_is será eliminado.
django.contrib.auth.hashers.SHA1PasswordHasher, django.contrib.auth.hashers.UnsaltedSHA1PasswordHasher y django.contrib.auth.hashers.UnsaltedMD5PasswordHasher serán eliminados.
El modelo django.contrib.postgres.fields.CICharField, django.contrib.postgres.fields.CIEmailField y django.contrib.postgres.fields.CITextField será eliminado. Se mantendrán los campos de stub para compatibilidad con migraciones históricas.
La mezcla django.contrib.postgres.fields.CIText será eliminada.
Las atributos map_width y map_height de BaseGeometryWidget serán eliminados.
El método SimpleTestCase.assertFormsetError() será eliminado.
El método TransactionTestCase.assertQuerysetEqual() será eliminado.
Se eliminará el soporte para pasar cadenas literales JSON codificadas a JSONField y asociados lookups y expresiones.
Se eliminará el soporte para pasar argumentos posicionales a Signer y TimestampSigner.
Las configuraciones DEFAULT_FILE_STORAGE y STATICFILES_STORAGE serán eliminadas.
La función django.core.files.storage.get_storage_class() será eliminada.
See the Django 4.0 release notes para más detalles sobre estos cambios.
Se eliminará la configuración de prueba SERIALIZE.
Se eliminará el módulo no documentado django.utils.baseconv.
Se eliminará el módulo no documentado django.utils.datetime_safe.
El valor predeterminado de la configuración USE_TZ cambiará de False a True.
El protocolo de mapa del sitio por defecto para los mapas del sitio creados fuera del contexto de una solicitud cambiará de 'http' a 'https'.
Se eliminará el argumento extra_tests para DiscoverRunner.build_suite() y DiscoverRunner.run_tests().
Los agregados django.contrib.postgres.aggregates.ArrayAgg, JSONBAgg y StringAgg devolverán None cuando no haya filas en lugar de [], [] y '' respectivamente.
Se eliminará la configuración USE_L10N.
Se eliminará la configuración transitoria USE_DEPRECATED_PYTZ.
Soporte para las zonas horarias de pytz será eliminado.
El argumento is_dst será eliminado de:
QuerySet.datetimes()
django.utils.timezone.make_aware()
django.db.models.functions.Trunc()
django.db.models.functions.TruncSecond()
django.db.models.functions.TruncMinute()
django.db.models.functions.TruncHour()
django.db.models.functions.TruncDay()
django.db.models.functions.TruncWeek()
La traducción de los textos es la siguiente:
django.db.models.functions.TruncTrimestre()
django.db.models.functions.TruncAño()
La clase django.contrib.gis.admin.GeoModelAdmin y la clase OSMGeoAdmin serán eliminadas.
El método no documentado BaseForm._html_output() será eliminado.
Se eliminará la capacidad de devolver una str, en lugar de un SafeString, al renderizar un ErrorDict y ErrorList.
Consulte las notas de lanzamiento de Django 4.1 <deprecated-features-4.1> para obtener más detalles sobre estos cambios.
El método SitemapIndexItem.__str__() será eliminado.
La configuración transitoria CSRF_COOKIE_MASKED será eliminada.
Se eliminará el argumento name de django.utils.functional.cached_property().
La traducción de los textos es la siguiente:
La capacidad no documentada de pasar errors=None a SimpleTestCase.assertFormError() y assertFormsetError() será eliminada.
django.contrib.sessions.serializers.PickleSerializer será eliminado.
El uso de QuerySet.iterator() en una consulta que prefetch objetos relacionados sin proporcionar el argumento chunk_size ya no estará permitido.
La pasada de instancias de modelos no guardadas a filtros relacionados ya no estará permitida.
Se requerirá created=True en la firma de las subclases de RemoteUserBackend.configure_user().
El soporte para cerrar sesión mediante solicitudes GET en django.contrib.auth.views.LogoutView y django.contrib.auth.views.logout_then_login() será eliminado.
La alias django.utils.timezone.utc a datetime.timezone.utc será eliminada.
La pasada de un objeto respuesta y el nombre de una forma/formset a SimpleTestCase.assertFormError() y assertFormsetError() ya no estará permitida.
El django.contrib.gis.admin.OpenLayersWidget será eliminado.
La traducción de los textos es la siguiente:
Los plantillas "django/forms/default.html" y "django/forms/formsets/default.html" serán eliminadas.
La capacidad de pasar nulls_first=False o nulls_last=False a los métodos Expression.asc() y Expression.desc(), y la expresión OrderBy será eliminada.
Consulte las notas de lanzamiento de Django 3.2 <deprecated-features-3.2> para obtener más detalles sobre estos cambios.
El soporte para asignar objetos que no admiten la creación de copias profundas con copy.deepcopy() a atributos de clase en TestCase.setUpTestData() será eliminado.
BaseCommand.requires_system_checks ya no admitirá valores booleanos.
El argumento whitelist y el atributo domain_whitelist de django.core.validators.EmailValidator serán eliminados.
La variable de módulo default_app_config será eliminada.
TransactionTestCase.assertQuerysetEqual() ya no llamará automáticamente a repr() en una consulta cuando se compara con valores de cadena.
django.core.cache.backends.memcached.MemcachedCache será eliminado.
Se eliminará el soporte para el formato de mensajes utilizado por django.contrib.messages.storage.cookie.CookieStorage antes de Django 3.2.
Consulte las notas de lanzamiento de Django 3.0 en <deprecated-features-3.0> para obtener más detalles sobre estas modificaciones.
Se eliminarán django.utils.http.urlquote(), urlquote_plus(), urlunquote(), y urlunquote_plus().
Se eliminarán django.utils.encoding.force_text() y smart_text().
Se eliminarán django.utils.translation.ugettext(), ugettext_lazy(), ugettext_noop(), ungettext(), y ungettext_lazy().
django.views.i18n.set_language() ya no establecerá el idioma del usuario en request.session (clave django.utils.translation.LANGUAGE_SESSION_KEY).
Se requerirá alias=None en la firma de las subclases de django.db.models.Expression.get_group_by_cols().
Se eliminará django.utils.text.unescape_entities().
django.utils.http.is_safe_url() será eliminado.
Consulte las notas de lanzamiento de Django 3.1 <deprecated-features-3.1> para obtener más detalles sobre estos cambios.
La configuración PASSWORD_RESET_TIMEOUT_DAYS será eliminada.
El uso no documentado de la búsqueda isnull con valores no booleanos como el lado derecho ya no estará permitido.
La clase de excepción django.db.models.query_utils.InvalidQuery será eliminada.
El punto de entrada django-admin.py será eliminado.
El método HttpRequest.is_ajax() será eliminado.
Se eliminará el soporte para el formato de codificación pre-Django 3.1 de los valores de las cookies utilizados por django.contrib.messages.storage.cookie.CookieStorage.
Se eliminará el soporte para los tokens de restablecimiento de contraseña pre-Django 3.1 en la interfaz administrativa (que usan el algoritmo de hash SHA-1).
Se eliminará el soporte para el formato de codificación pre-Django 3.1 de las sesiones.
Los textos traducidos manteniendo todas las etiquetas intactas son:
El soporte para las firmas de los datos codificados con el algoritmo SHA-1 en django.core.signing.loads() (que se utilizaban en pre-Django 3.1 django.core.signing.dumps()) será eliminado.
El soporte para las sesiones de usuarios pre-Django 3.1 (que usan el algoritmo SHA-1) será eliminado.
El argumento get_response para django.utils.deprecation.MiddlewareMixin.__init__() será obligatorio y no aceptará None.
El argumento providing_args para django.dispatch.Signal será eliminado.
El argumento length para django.utils.crypto.get_random_string() será obligatorio.
El mensaje de lista para ModelMultipleChoiceField será eliminado.
El soporte para pasar alias de columnas brutas a QuerySet.order_by() será eliminado.
El modelo NullBooleanField será eliminado. Un campo de reemplazo permanecerá por compatibilidad con migraciones históricas.
django.conf.urls.url() será eliminada.
El modelo django.contrib.postgres.fields.JSONField será eliminado. Un campo de stub permanecerá para compatibilidad con migraciones históricas.
Se eliminarán django.contrib.postgres.forms.JSONField, django.contrib.postgres.fields.jsonb.KeyTransform y django.contrib.postgres.fields.jsonb.KeyTextTransform.
Los marcadores de plantilla {% ifequal %} y {% ifnotequal %} serán eliminados.
La configuración transitoria DEFAULT_HASHING_ALGORITHM será eliminada.
Consulte las notas de lanzamiento de Django 2.2 <deprecated-features-2.2> para obtener más detalles sobre estos cambios.
Se eliminará django.utils.timezone.FixedOffset.
Se eliminará django.core.paginator.QuerySetPaginator.
La ordenación de un modelo en Meta.ordering ya no afectará las consultas GROUP BY.
Se eliminarán django.contrib.postgres.fields.FloatRangeField y django.contrib.postgres.forms.FloatRangeField.
La traducción de los textos es la siguiente:
django.contrib.staticfiles.storage.CachedStaticFilesStorage será eliminado.
RemoteUserBackend.configure_user() requerirá request como primer argumento posicional.
La compatibilidad con SimpleTestCase.allow_database_queries y TransactionTestCase.multi_db será eliminada.
Consulte las notas de lanzamiento de Django 2.0<deprecated-features-2.0> para obtener más detalles sobre estos cambios.
El módulo django.db.backends.postgresql_psycopg2 será eliminado.
django.shortcuts.render_to_response() será eliminada.
El parámetro de configuración DEFAULT_CONTENT_TYPE será eliminado.
HttpRequest.xreadlines() será eliminada.
Los textos traducidos son:
El argumento de palabra clave field_name de QuerySet.earliest() y latest() será eliminado.
Consulte las notas de lanzamiento de Django 2.1 <deprecated-features-2.1> para obtener más detalles sobre estos cambios.
django.contrib.gis.db.models.functions.ForceRHR será eliminado.
django.utils.http.cookie_date() será eliminado.
Las bibliotecas de etiquetas de plantilla staticfiles y admin_static serán eliminadas.
django.contrib.staticfiles.templatetags.static() será eliminado.
El shim para permitir que InlineModelAdmin.has_add_permission() se defina sin un argumento obj será eliminado.
Consulte las notas de lanzamiento de Django 1.11 <deprecated-features-1.11> para obtener más detalles sobre estos cambios.
Los textos traducidos son:
El parámetro extra_context de contrib.auth.views.logout_then_login() será eliminado.
django.test.runner.setup_databases() será eliminado.
django.utils.translation.string_concat() será eliminada.
django.core.cache.backends.memcached.PyLibMCCache ya no admitirá la pasada de configuraciones de comportamiento pylibmc como atributos de nivel superior de OPTIONS.
El parámetro host de django.utils.http.is_safe_url() será eliminado.
La silenciación de excepciones lanzadas mientras se renderiza el tag de plantilla {% include %} será eliminada.
DatabaseIntrospection.get_indexes() será eliminado.
El método authenticate() de backends de autenticación requerirá request como primer argumento posicional.
El decorador django.db.models.permalink() será eliminado.
La traducción de los textos es la siguiente:
La propiedad Model._meta.has_auto_field será eliminada.
El soporte para banderas inline en grupos de expresiones regulares ((?i), (?L), (?m), (?s) y (?u)) en url() será eliminado.
Se eliminará el soporte para métodos Widget.render() sin la argumento renderer.
Consulte las notas de liberación de Django 1.9<deprecated-features-1.9> para obtener más detalles sobre estos cambios.
Se eliminará el argumento weak a django.dispatch.signals.Signal.disconnect().
Se eliminará django.db.backends.base.BaseDatabaseOperations.check_aggregate_support().
Se eliminará el paquete django.forms.extras.
Se eliminará la ayuda de asginación assignment_tag.
Los textos traducidos son:
Field.rel será eliminado.
La propiedad to del atributo remote_field de Field será eliminada.
El argumento on_delete para ForeignKey y OneToOneField será obligatorio.
django.db.models.fields.add_lazy_relation() será eliminado.
Cuando la compatibilidad con zonas horarias está habilitada, los motores de base de datos que no admiten zonas horarias ya no convertirán fechas conscientes a valores ingenuos en UTC cuando tales valores se pasan como parámetros a consultas SQL ejecutadas fuera del ORM, por ejemplo con cursor.execute().
El decorador django.contrib.auth.tests.utils.skipIfCustomUser() será eliminado.
Las clases GeoManager y GeoQuerySet serán eliminadas.
El módulo django.contrib.gis.geoip será eliminado.
La comprobación de supports_recursion para cargadores de plantillas será eliminada de:
La traducción de los textos es la siguiente:
django.template.loader_tags.ExtendsNode.find_template()
django.template.loaders.base.Loader.supports_recursion()
django.template.loaders.cached.Loader.supports_recursion()
Se eliminarán los métodos de carga de plantillas load_template() y load_template_sources().
Se eliminará el argumento template_dirs para los cargadores de plantillas:
django.template.loaders.base.Loader.get_template()
django.template.loaders.cached.Loader.cache_key()
django.template.loaders.cached.Loader.get_template()
django.template.loaders.cached.Loader.get_template_sources()
django.template.loaders.filesystem.Cargador.get_template_sources()
La método django.template.loaders.base.Cargador.__call__() será eliminado.
Se dejará de apoyar vistas de errores personalizadas con un solo parámetro posicional.
La atributo mime_type de django.utils.feedgenerator.Atom1Feed y django.utils.feedgenerator.RssFeed será eliminado en favor de content_type.
El argumento app_name a django.conf.urls.include() será eliminado.
Se dejará de apoyar pasar un tupla de 3 elementos como el primer argumento a include().
Se dejará de apoyar establecer un espacio de nombres de URL sin un espacio de nombres de aplicación.
Field._get_val_from_obj() será eliminado en favor de Field.value_from_object().
django.template.loaders.eggs.Cargador será eliminado.
El parámetro current_app a las vistas del módulo contrib.auth será eliminado.
La callable_obj argumento de palabra clave para SimpleTestCase.assertRaisesMessage() será eliminado.
Se eliminará el soporte para la allow_tags atributo en los métodos de ModelAdmin.
El argumento de palabra clave enclosure para SyndicationFeed.add_item() será eliminado.
Las alias django.template.loader.LoaderOrigin y django.template.base.StringOrigin para django.template.base.Origin serán eliminados.
Consulte las notas de lanzamiento de Django 1.10 para obtener más detalles sobre estos cambios.
La opción makemigrations --exit será eliminada.
Se eliminará el soporte para la asignación directa a una clave foránea inversa o relación muchos-a-muchos.
Los métodos get_srid() y set_srid() de django.contrib.gis.geos.GEOSGeometry serán eliminados.
Los métodos get_x(), set_x(), get_y(), set_y(), get_z() y set_z() de django.contrib.gis.geos.Point serán eliminados.
Los métodos get_coords() y set_coords() de django.contrib.gis.geos.Point serán eliminados.
La traducción de los textos es la siguiente:
Se eliminará django.utils.functional.allow_lazy().
Opción shell --plain se eliminará.
El módulo django.core.urlresolvers se eliminará.
El modelo CommaSeparatedIntegerField se eliminará. Un campo de stub permanecerá para compatibilidad con migraciones históricas.
Se eliminará el soporte para el método del template Context.has_key().
Se eliminará el soporte para los métodos django.core.files.storage.Storage.accessed_time(), created_time(), y modified_time().
Se eliminará el soporte para consultas de búsqueda utilizando el nombre del modelo cuando Meta.default_related_name está configurado.
La consulta de búsqueda __search y el método DatabaseOperations.fulltext_search_sql() se eliminarán.
El shim para apoyar clases personalizadas de gestores relacionados sin un método _apply_rel_filters() se eliminará.
Los métodos User.is_authenticated() y User.is_anonymous() ya no serán soportados.
La atributo privado virtual_fields de Model._meta será eliminado.
Las argumentos de palabra clave privados virtual_only en Field.contribute_to_class() y virtual en Model._meta.add_field() serán eliminados.
Las vistas javascript_catalog() y json_catalog() serán eliminadas.
La función django.contrib.gis.utils.precision_wkt() será eliminada.
En la herencia de tablas múltiples, la promoción implícita de un OneToOneField a un parent_link será eliminada.
El soporte para Widget._format_value() será eliminado.
Los métodos de FileField get_directory_name() y get_filename() serán eliminados.
La función mark_for_escaping() y las clases que utiliza: EscapeData, EscapeBytes, EscapeText, EscapeString y EscapeUnicode serán eliminadas.
El filtro escape cambiará para utilizar django.utils.html.conditional_escape().
Los textos traducidos son:
La herencia de modelos Manager seguirá las reglas de la herencia MRO y el Meta.manager_inheritance_from_future para optar por este comportamiento se eliminará.
Se eliminará el soporte para middleware antiguos utilizando settings.MIDDLEWARE_CLASSES.
Consulte las notas de lanzamiento de Django 1.8<deprecated-features-1.8> para obtener más detalles sobre estos cambios.
Se eliminará el soporte para llamar directamente a un SQLCompiler como alias para llamar su método quote_name_unless_alias.
Los marcadores de plantilla cycle y firstof se eliminarán de la biblioteca de marcadores de plantilla future (utilizada durante el período de desactivación 1.6/1.7).
Se eliminará django.conf.urls.patterns().
Se eliminará el soporte para el argumento prefix a django.conf.urls.i18n.i18n_patterns().
Se eliminará SimpleTestCase.urls.
Usando un recuento incorrecto de valores desempaquetados en la etiqueta de plantilla for levantará una excepción en lugar de fallar silenciosamente.
La capacidad para revertir URL utilizando un camino de Python con puntos será eliminada.
La capacidad de utilizar un camino de Python con puntos para las configuraciones LOGIN_URL y LOGIN_REDIRECT_URL será eliminada.
Soporte para optparse se eliminará para comandos de gestión personalizados (sustituido por argparse).
La clase django.core.management.NoArgsCommand será eliminada. Utiliza en su lugar la clase BaseCommand, que acepta argumentos por defecto.
El módulo django.core.context_processors será eliminado.
El módulo django.db.models.sql.agregados será eliminado.
El módulo django.contrib.gis.db.models.sql.agregados será eliminado.
Los siguientes métodos y propiedades de django.db.sql.query.Query serán eliminados:
Propiedades: agregados y seleccion_agregado
Métodos: add_aggregate, set_aggregate_mask, y append_aggregate_mask.
Se eliminará django.template.resolve_variable.
Las siguientes APIs privadas se eliminarán de django.db.models.options.Options (Model._meta):
get_field_by_name()
get_all_field_names()
get_fields_with_model()
get_concrete_fields_with_model()
get_m2m_with_model()
get_all_related_objects()
get_all_related_objects_with_model()
get_all_related_many_to_many_objects()
get_all_related_m2m_objects_with_model()
La argumento error_message de django.forms.RegexField será eliminado.
El filtro unordered_list ya no admitirá listas antiguas estilo.
Se eliminará el soporte para las cadenas view como argumentos a url().
La compatibilidad retrocompatible shim para renombrar django.forms.Form._has_changed() a has_changed() será eliminada.
El filtro de plantilla removetags será eliminado.
Las funciones remove_tags() y strip_entities() en django.utils.html serán eliminadas.
Se eliminará el argumento is_admin_site a django.contrib.auth.views.password_reset().
django.db.models.field.subclassing.SubfieldBase será eliminado.
django.utils.checksums se eliminará; su funcionalidad está incluida en django-localflavor 1.1+.
La atributo original_content_type_id de django.contrib.admin.helpers.InlineAdminForm se eliminará.
El shim de compatibilidad hacia atrás para permitir que FormMixin.get_form() esté definido sin valor por defecto para su argumento form_class se eliminará.
Las siguientes configuraciones se eliminarán:
ALLOWED_INCLUDE_ROOTS
TEMPLATE_CONTEXT_PROCESSORS
TEMPLATE_DEBUG
TEMPLATE_DIRS
TEMPLATE_LOADERS
TEMPLATE_STRING_IF_INVALID
La traducción de los textos es la siguiente:
Los objetos de plantilla Django devueltos por get_template() y select_template() ya no aceptarán un Context en su método render().
APIs de respuesta de plantilla imporlarán el uso de objetos de plantillas dependientes del backend y de tipo dict en lugar de Context y Template respectivamente.
El parámetro current_app para las siguientes funciones y clases será eliminado:
django.shortcuts.render()
django.template.Context()
django.template.RequestContext()
django.template.response.TemplateResponse()
Los parámetros dictionary y context_instance para las siguientes funciones serán eliminados:
django.shortcuts.render()
django.shortcuts.render_to_response()
django.template.loader.render_to_string()
La parámetro dirs para las siguientes funciones será eliminado:
django.template.loader.get_template()
django.template.loader.select_template()
django.shortcuts.render()
django.shortcuts.render_to_response()
La verificación de sesión estará habilitada sin importar si 'django.contrib.auth.middleware.SessionAuthenticationMiddleware' está en MIDDLEWARE_CLASSES.
La atributo privado django.db.models.Field.related será eliminado.
La opción --list del comando de gestión migrate será eliminada.
El marcador de plantilla ssi será eliminado.
Se eliminará el soporte para el operador de comparación = en el marcador de plantilla if.
Los shims de compatibilidad hacia atrás para permitir la definición de Storage.get_available_name() y Storage.save() sin un argumento max_length serán eliminados.
Soporte para la sintaxis legada %(<foo>)s en ModelFormMixin.success_url se eliminará.
Los métodos de agregado GeoQuerySet collect(), extent(), extent3d(), make_line() y unionagg() se eliminarán.
La capacidad para especificar ContentType.name al crear una instancia de tipo de contenido se eliminará.
Soporte para la firma antigua de allow_migrate se eliminará. Se cambió de allow_migrate(self, db, model) a allow_migrate(self, db, app_label, model_name=None, **hints).
El soporte para la sintaxis de {% cycle %} que utiliza argumentos separados por comas se eliminará.
La advertencia que Signer emite cuando se le da un separador inválido se convertirá en una excepción.
Consulte las notas de lanzamiento de la versión 1.7 de Django <deprecated-features-1.7> para obtener más detalles sobre estos cambios.
django.utils.dictconfig se eliminará.
django.utils.importlib se eliminará.
django.utils.tzinfo será eliminado.
django.utils.unittest será eliminado.
La orden syncdb será eliminada.
django.db.models.signals.pre_syncdb y django.db.models.signals.post_syncdb serán eliminados.
La opción allow_syncdb en los routers de bases de datos ya no se convertirá automáticamente en allow_migrate.
La sincronización automática de aplicaciones sin migraciones será eliminada. Las migraciones se volverán obligatorias para todas las aplicaciones a menos que pases la opción --run-syncdb a migrate.
Las órdenes de gestión SQL para aplicaciones sin migraciones, sql, sqlall, sqlclear, sqldropindexes y sqlindexes, serán eliminadas.
El soporte para la carga automática de datos iniciales con fijos initial_data y datos SQL iniciales será eliminado.
Todos los modelos deberán estar definidos dentro de una aplicación instalada o declarar un etiqueta explícita app_label. Además, no se podrá importarlos antes de que su aplicación esté cargada. En particular, no se podrá importar modelos dentro del paquete raíz de su aplicación.
El modelo y la forma IPAddressField serán eliminados. Un campo stub permanecerá para compatibilidad con migraciones históricas.
AppCommand.handle_app() ya no estará soportado.
RequestSite y get_current_site() ya no serán importables desde django.contrib.sites.models.
La compatibilidad con FastCGI a través de la orden de comando runfcgi se eliminará. Por favor, despliegue su proyecto utilizando WSGI.
django.utils.datastructures.SortedDict se eliminará. Utilice en su lugar collections.OrderedDict desde la biblioteca estándar de Python.
Se eliminará ModelAdmin.declared_fieldsets.
Las instancias de util.py en el código base de Django han sido renombradas a utils.py con el fin de unificar todas las referencias a util y utils. Los módulos que proporcionaban compatibilidad hacia atrás se eliminarán:
django.contrib.admin.util
django.contrib.gis.db.backends.util
django.db.backends.util
django.forms.util
ModelAdmin.get_formsets se eliminará.
La compatibilidad hacia atrás introducida para renombrar el método BaseMemcachedCache._get_memcache_timeout() a get_backend_timeout() se eliminará.
Las opciones --natural y -n para dumpdata se eliminarán.
El argumento use_natural_keys para serializers.serialize() se eliminará.
La API privada django.forms.forms.get_declared_fields() se eliminará.
La capacidad de utilizar un SplitDateTimeWidget con DateTimeField se eliminará.
La propiedad WSGIRequest.REQUEST se eliminará.
La clase django.utils.datastructures.MergeDict se eliminará.
Los códigos de idioma zh-cn y zh-tw se eliminarán y han sido reemplazados por el código de idioma zh-hans y zh-hant respectivamente.
La función interna django.utils.functional.memoize se eliminará.
django.core.cache.get_cache será eliminado. Agrega entradas adecuadas a CACHES y utiliza en su lugar django.core.cache.caches.
django.db.models.loading será eliminado.
Ya no se permitirá pasar argumentos llamables a consultas de conjuntos.
BaseCommand.requires_model_validation será eliminado en favor de requires_system_checks. Los validadores del administrador serán reemplazados por comprobaciones del administrador.
Las atributos ModelAdmin.validator_class y default_validator_class se eliminarán.
ModelAdmin.validate() será eliminado.
django.db.backends.DatabaseValidation.validate_field será eliminado en favor de la método check_field.
El comando de gestión validate será eliminado.
django.utils.module_loading.import_by_path será eliminado en favor de django.utils.module_loading.import_string.
Los etiquetas de plantilla ssi y url se eliminarán del biblioteca de etiquetas de plantilla future (utilizada durante el período de desactivación 1.3/1.4).
Los textos traducidos son:
Las configuraciones de prueba en la base de datos como entradas independientes en las configuraciones de la base de datos, precedidas por TEST_, ya no serán admitidas.
La opción cache_choices para ModelChoiceField y ModelMultipleChoiceField será eliminada.
El valor predeterminado del atributo RedirectView.permanente cambiará de True a False.
django.contrib.sitemaps.FlatPageSitemap será eliminado en favor de django.contrib.flatpages.sitemaps.FlatPageSitemap.
La API privada django.test.utils.TestTemplateLoader será eliminada.
El módulo django.contrib.contenttypes.generic será eliminado.
Las APIs privadas django.db.models.sql.where.WhereNode.make_atom() y django.db.models.sql.where.Constraint serán eliminadas.
Consulte las notas de liberación de Django 1.6 para obtener más detalles sobre estos cambios.
django.contrib.comments se eliminará.
Se eliminarán las siguientes APIs de gestión de transacciones:
TransactionMiddleware,
los decoradores y los administradores de contexto autocommit, commit_on_success y commit_manually, definidos en django.db.transaction,
las funciones commit_unless_managed y rollback_unless_managed, también definidas en django.db.transaction,
la configuración TRANSACTIONS_MANAGED.
Los marcadores de plantilla cycle y firstof escaparán automáticamente sus argumentos. En las versiones 1.6 y 1.7, este comportamiento se proporciona por la versión de estos marcadores en la biblioteca future de marcadores de plantilla.
La configuración SEND_BROKEN_LINK_EMAILS se eliminará. Agrega el middleware django.middleware.common.BrokenLinkEmailsMiddleware a tu configuración MIDDLEWARE_CLASSES en su lugar.
django.middleware.doc.XViewMiddleware se eliminará. Utiliza django.contrib.admindocs.middleware.XViewMiddleware en su lugar.
Model._meta.module_name fue renombrado a model_name.
Remove las compatibilidades de retroceso introducidas para renombrar get_query_set y métodos de conjunto de consultas similares. Esto afecta a las siguientes clases: BaseModelAdmin, ChangeList, BaseCommentNode, GenericForeignKey, Manager, SingleRelatedObjectDescriptor y ReverseSingleRelatedObjectDescriptor.
Remove las compatibilidades de retroceso introducidas para renombrar los atributos ChangeList.root_query_set y ChangeList.query_set.
django.views.defaults.shortcut se eliminará, como parte del objetivo de eliminar todas las referencias a django.contrib del código base de Django. En su lugar, utilice django.contrib.contenttypes.views.shortcut. También se eliminará django.conf.urls.shortcut.
Se eliminará el soporte para la biblioteca de imágenes Python (PIL), ya que no parece estar siendo mantenida activamente y no funciona en Python 3.
Se eliminarán las siguientes APIs privadas:
django.db.backend
django.db.close_connection()
django.db.backends.creation.BaseDatabaseCreation.set_autocommit()
django.db.transaction.is_managed()
django.db.transaction.managed()
django.forms.widgets.RadioInput se eliminará en favor de django.forms.widgets.RadioChoiceInput.
El módulo django.test.simple y la clase django.test.simple.DjangoTestSuiteRunner se eliminarán. En su lugar, utilice django.test.runner.DiscoverRunner.
El módulo django.test._doctest se eliminará. En su lugar, utilice el módulo doctest de la biblioteca estándar de Python.
La configuración CACHE_MIDDLEWARE_ANONYMOUS_ONLY se eliminará.
Se dejará de realizar el uso del string Hold down «Control», o «Command» en un Mac, para seleccionar más de uno. predefinido para sobreescribir o agregar a la ayuda proporcionada por los usuarios en los campos de muchos a muchos de las formas.
Los métodos Model._meta.get_(add|change|delete)_permission se eliminarán.
La clave de sesión django_language ya no se leerá para compatibilidad hacia atrás.
Se eliminarán los Mapas Sitemaps geográficos (django.contrib.gis.sitemaps.views.index y django.contrib.gis.sitemaps.views.sitemap).
django.utils.html.fix_ampersands, el filtro de plantilla fix_ampersands y django.utils.html.clean_html se eliminarán siguiendo una desactivación acelerada.
See the Notas de lanzamiento de Django 1.5 para más detalles sobre estas modificaciones.
El módulo django.utils.simplejson será eliminado. La biblioteca estándar proporciona json que debe usarse en su lugar.
La función django.utils.itercompat.product será eliminada. Se debería usar la versión de Python nativa en su lugar.
La corrección automática de las configuraciones INSTALLED_APPS y TEMPLATE_DIRS cuando se especifican como una cadena simple en lugar de un tupla será eliminada y lanzará una excepción.
El argumento mimetype a los métodos __init__ de HttpResponse, SimpleTemplateResponse y TemplateResponse, será eliminado. Se debería usar content_type en su lugar. Esto también se aplica al atajo render_to_response() y a las vistas del mapa de sitios, index() y sitemap().
Cuando HttpResponse se instancia con un iterador, o cuando content se establece en un iterador, ese iterador será consumido inmediatamente.
La configuración AUTH_PROFILE_MODULE y el método get_profile() del modelo de usuario serán eliminados.
El comando administrativo cleanup será eliminado. Se reemplaza con clearsessions.
El script daily_cleanup.py será eliminado.
La palabra clave argumento depth será eliminada de select_related().
Los textos traducidos son:
El método no documentado check_for_test_cookie en la clase AuthenticationForm se eliminará después de una descontinuación acelerada. Los usuarios que heredan esta forma deben eliminar las llamadas a este método y asegurarse de que sus vistas relacionadas con autenticación estén protegidas contra CSRF, lo cual garantiza que las cookies estén habilitadas.
La versión de django.contrib.auth.views.password_reset_confirm() que admite IDs de usuario codificadas en base36 (django.contrib.auth.views.password_reset_confirm_uidb36) se eliminará. Si su sitio ha estado ejecutando Django 1.6 durante más tiempo que PASSWORD_RESET_TIMEOUT_DAYS, esta modificación no tendrá efecto. Si no, entonces cualquier enlace de restablecimiento de contraseña generado antes de actualizar a Django 1.7 dejará de funcionar después de la actualización.
La clase mix-in django.utils.encoding.StrAndUnicode se eliminará.
Consulte las notas de liberación de Django 1.4 para obtener más detalles sobre estas modificaciones.
django.contrib.databrowse se eliminará.
django.contrib.localflavor se eliminará después de una descontinuación acelerada.
django.contrib.markup se eliminará después de una descontinuación acelerada.
Los módulos compatibles django.utils.copycompat y django.utils.hashcompat así como las funciones django.utils.itercompat.all y django.utils.itercompat.any se eliminarán. Deberían utilizarse en su lugar las versiones de Python nativas.
Los textos traducidos son:
La clase de almacenamiento en caché django.core.cache.backends.memcached.CacheClass fue dividida en dos en Django 1.3 con el fin de introducir soporte para PyLibMC. La clase histórica CacheClass será eliminada a favor de django.core.cache.backends.memcached.MemcachedCache.
Los objetos prefijados con UK de django.contrib.localflavor.uk solo serán accesibles a través de sus nombres GB-prefijados (GB es el código ISO 3166 correcto para Reino Unido).
Las configuraciones IGNORABLE_404_STARTS y IGNORABLE_404_ENDS han sido superadas por IGNORABLE_404_URLS en la versión 1.4. Serán eliminadas.
El asistente de formularios ha sido refactorizado para utilizar vistas basadas en clases con backends personalizables en la versión 1.4. La implementación anterior será eliminada.
Las formas antiguas de llamar a cache_page() serán eliminadas.
El shim de compatibilidad hacia atrás para agregar automáticamente un filtro sin depuración al manipulador de registro 'mail_admins' será eliminado. La configuración LOGGING debería incluir este filtro explícitamente si se desea.
Las funciones de truncamiento integradas django.utils.text.truncate_words() y django.utils.text.truncate_html_words() serán eliminadas a favor de la clase django.utils.text.Truncator.
La clase django.contrib.gis.geoip.GeoIP fue movida a django.contrib.gis.geoip en la versión 1.4 – el atajo en django.contrib.gis.utils será eliminado.
django.conf.urls.defaults será eliminada. Las funciones include(), patterns(), y url(), más handler404 y handler500 ahora están disponibles a través de django.conf.urls.
Los textos traducidos son:
La configuración de las banderas is_safe y needs_autoescape como atributos de funciones de filtros de plantilla ya no será admitida.
El atributo HttpRequest.raw_post_data fue renombrado a HttpRequest.body en 1.4. La compatibilidad hacia atrás se eliminará – HttpRequest.raw_post_data ya no funcionará.
El valor para el parámetro post_url_continue de ModelAdmin.response_add() deberá ser o None (para redirigir a la página de edición del objeto creado recientemente) o una URL pre-formateada. Los formatos de cadena, como el antiguo por defecto '../%s/', ya no se aceptarán.
Consulte las notas de liberación de Django 1.3 para obtener más detalles sobre estos cambios.
Django sin una clave secreta configurada (SECRET_KEY) dará como resultado una excepción en lugar de un DeprecationWarning. (Esta es la aceleración del camino de desuso habitual; consulte las notas de liberación de Django 1.4.)
El manejo de solicitudes mod_python será eliminado. Se debe utilizar en su lugar el manejo de solicitudes mod_wsgi.
La propiedad template de los objetos django.test.client.Response devueltos por el cliente de pruebas (cliente de pruebas) será eliminada. Se debe utilizar en su lugar la propiedad templates.
El DjangoTestRunner de django.test.simple será eliminado. En su lugar, se debe usar una clase nativa de unittest. Las características del DjangoTestRunner (incluyendo el funcionamiento en modo fail-fast y la terminación de pruebas con Ctrl-C) pueden ser proporcionadas por unittest.TextTestRunner.
La traducción de los textos es la siguiente:
Los módulos de vistas genéricas basadas en funciones serán eliminados a favor de sus equivalentes basados en clases, descritos aquí.
El django.core.servers.basehttp.AdminMediaHandler será eliminado. En su lugar se utilizará django.contrib.staticfiles.handlers.StaticFilesHandler.
La biblioteca de etiquetas de plantilla adminmedia y la etiqueta de plantilla {% admin_media_prefix %} serán eliminadas a favor del manejo genérico de archivos estáticos. (Esto es más rápido que el camino de desactivación habitual; consulte las notas de liberación de Django 1.4.)
Las etiquetas de plantilla url y ssi serán modificadas para que la primera argumento de cada etiqueta sea una variable de plantilla, no una cadena implícita. En 1.4, este comportamiento se proporciona por una versión de la etiqueta en la biblioteca de etiquetas de plantilla future.
Los comandos de gestión reset y sqlreset serán eliminados.
Los backends de autenticación deberán apoyar a un usuario inactivo siendo pasado a todos los métodos relacionados con permisos. El atributo supports_inactive_user ya no se verificará y puede ser eliminado de los backends personalizados.
transform() lanzará una GEOSException cuando se llame a una geometría con un valor SRID vacío.
django.http.CompatCookie será eliminado a favor de django.http.SimpleCookie.
django.core.context_processors.PermWrapper y django.core.context_processors.PermLookupDict serán eliminados a favor de los correspondientes django.contrib.auth.context_processors.PermWrapper y django.contrib.auth.context_processors.PermLookupDict, respectivamente.
La traducción de los textos es la siguiente:
django.db.models.fields.URLField.verify_exists será eliminado. La característica fue deprecada en 1.3.1 debido a problemas de seguridad e intractables de rendimiento y seguirá un plazo de deprecación ligeramente acelerado.
Las traducciones ubicadas bajo el llamado ruta del proyecto serán ignoradas durante el proceso de construcción de traducciones realizado en tiempo de ejecución. El parámetro LOCALE_PATHS se puede utilizar para el mismo fin incluyendo la ruta al sistema de archivos a un directorio locale que contenga traducciones no específicas de aplicaciones en su valor.
La aplicación contributiva Markup ya no apoyará versiones del biblioteca Python-Markdown anterior a 2.1. Se utilizó un plazo acelerado ya que esta fue una deprecación relacionada con la seguridad.
El parámetro CACHE_BACKEND será eliminado. Los backends de caché deberían especificarse en el parámetro CACHES.
Consulte las notas de liberación de Django 1.2<deprecated-features-1.2> para obtener más detalles sobre estos cambios.
CsrfResponseMiddleware y CsrfMiddleware serán eliminados. Utilice el marcador de plantilla {% csrf_token %} dentro de formularios para habilitar la protección CSRF. CsrfViewMiddleware permanece y está habilitado por defecto.
Los antiguos importaciones para la funcionalidad CSRF (django.contrib.csrf.*), que se movieron a la parte central en 1.2, serán eliminados.
El módulo django.contrib.gis.db.backend será eliminado en favor de los backends específicos.
La traducción de los textos es la siguiente:
Las funciones de generación SQL many-to-many en los backends de base de datos se eliminarán.
La capacidad de utilizar la familia de configuraciones de nivel superior DATABASE_* para definir conexiones a bases de datos se eliminará.
La capacidad de utilizar notación abreviada para especificar un backend de base de datos (es decir, sqlite3 en lugar de django.db.backends.sqlite3) se eliminará.
Los métodos get_db_prep_save, get_db_prep_value y get_db_prep_lookup deberán admitir múltiples bases de datos.
El modelo Message (en django.contrib.auth), su administrador relacionado en el modelo User (user.message_set) y los métodos asociados (user.message_set.create() y user.get_and_delete_messages()), se eliminarán. En su lugar, debería usarse el framework de mensajes. La variable messages relacionada devuelta por el procesador de contexto de autenticación también se eliminará. Tenga en cuenta que esto significa que la aplicación administrativa dependerá del procesador de contexto de mensajes.
Los backends de autenticación deberán admitir el parámetro obj para comprobar permisos. La variable supports_object_permissions ya no se verificará y puede eliminarse de los backends personalizados.
Los backends de autenticación deberán admitir la clase AnonymousUser siendo pasada a todos los métodos relacionados con permisos. La variable supports_anonymous_user ya no se verificará y puede eliminarse de los backends personalizados.
La capacidad de especificar un cargador de plantillas llamable en lugar de una clase Loader se eliminará, así como las funciones load_template_source incluidas con los cargadores de plantillas integrados para compatibilidad hacia atrás.
django.utils.translation.get_date_formats() y django.utils.translation.get_partial_date_formats(). Estas funciones se eliminarán; utilice la función locale-aware django.utils.formats.get_format() para obtener los formatos adecuados.
Los textos traducidos son:
Se eliminará la capacidad de utilizar un ejecutor de pruebas basado en funciones, junto con el ejecutor de pruebas django.test.simple.run_tests().
La vista views.feed() y la clase feeds.Feed en django.contrib.syndication serán eliminadas. En su lugar, se debe utilizar la vista basada en clases views.Feed.
django.core.context_processors.auth. Esta versión eliminará el método antiguo a favor del nuevo método en django.contrib.auth.context_processors.auth.
El backend de base de datos postgresql será eliminado, utilice el backend postgresql_psycopg2 en su lugar.
Se eliminará el código de idioma no y ha sido reemplazado por el código de idioma nb.
Los backends de autenticación deberán definir la atributo booleano supports_inactive_user hasta la versión 1.5, cuando se asumirá que todos los backends manejarán a los usuarios inactivos.
django.db.models.fields.XMLField será eliminado. Este campo fue deprecado como parte de la versión 1.3. Se ha utilizado un calendario de deprecación acelerado porque el campo no ha tenido ningún papel más allá del de un simple TextField desde la eliminación de oldforms. Todos los usos de XMLField pueden reemplazarse con TextField.
El parámetro mixin no documentado para el método open() de django.core.files.storage.Storage (y subclases) será eliminado.
See el Django 1.1 release notes para obtener más detalles sobre estas modificaciones.
AdminSite.root(). Este método de conexión a las URLs del administrador será eliminado en favor de incluir admin.site.urls.
Los backends de autenticación deben definir las atributos booleanos supports_object_permissions y supports_anonymous_user hasta la versión 1.4, momento en el que se asumirá que todos los backends apoyarán estas opciones.
may 31, 2026