Ce document présente les échéances où divers aspects de Django seront supprimés ou modifiés de manière non rétrocompatible, après une période d’obsolescence, en accord avec la politique d’obsolescence. Plus de détails sur ces différents éléments sont souvent disponibles dans les notes de publication les précédant de deux versions.
Consultez les notes de publication de Django 5.0 pour plus de détails sur ces changements.
DjangoDivFormRenderer
et Jinja2DivFormRenderer
seront supprimés.BaseConstraint
sera supprimée.request
sera obligatoire dans la signature des sous-classes de ModelAdmin.lookup_allowed()
.django.db.models.sql.datastructures.Join
ne fera plus appel à get_joining_columns()
.get_joining_columns()
de ForeignObject
et de ForeignObjectRel
sera supprimée.ForeignObject.get_reverse_joining_columns()
sera supprimée.forms.URLField
passera de "http"
à "https"
.format_html()
sans transmettre d’arguments, nommés ou pas, sera supprimée.cx_Oracle
sera supprimée.BaseDatabaseOperations.field_cast_sql()
sera supprimée.ChoicesMeta
de django.db.models.enums.ChoicesType
sera supprimé.Prefetch.get_current_queryset()
sera supprimée.get_prefetch_queryset()
des gestionnaires de liaison et des descripteurs sera supprimée.get_prefetcher()
et prefetch_related_objects()
ne se rabattront plus vers get_prefetch_queryset()
.FORMS_URLFIELD_ASSUME_HTTPS
sera supprimé.Consultez les notes de publication de Django 4.2 pour plus de détails sur ces changements.
BaseUserManager.make_random_password()
sera supprimée.Meta.index_together
sera supprimée.length_is
sera supprimé.django.contrib.auth.hashers.UnsaltedSHA1PasswordHasher
et django.contrib.auth.hashers.UnsaltedMD5PasswordHasher
seront supprimées.django.contrib.postgres.fields.CICharField
, django.contrib.postgres.fields.CIEmailField
et django.contrib.postgres.fields.CITextField
seront supprimés. Des champs factices resteront pour assurer la compatibilité avec les migrations historiques.django.contrib.postgres.fields.CIText
sera supprimée.map_width
et map_height
de BaseGeometryWidget
seront supprimés.SimpleTestCase.assertFormsetError()
sera supprimée.TransactionTestCase.assertQuerysetEqual()
sera supprimée.JSONField
et aux requêtes et expressions associées sera supprimée.Signer
et TimestampSigner
sera supprimée.DEFAULT_FILE_STORAGE
et STATICFILES_STORAGE
seront supprimés.django.core.files.storage.get_storage_class()
sera supprimée.Consultez les notes de publication de Django 4.0 pour plus de détails sur ces changements.
SERIALIZE
sera supprimé.django.utils.baseconv
sera supprimé.django.utils.datetime_safe
sera supprimé.USE_TZ
va changer de False
à True
.'http'
à 'https'
.extra_tests
de DiscoverRunner.build_suite()
et de DiscoverRunner.run_tests()
sera supprimé.django.contrib.postgres.aggregates.ArrayAgg
, JSONBAgg
et StringAgg
renvoient None
lorsqu’il n’y a aucun résultat, au lieu de []
, []
et ''
, respectivement.USE_L10N
sera supprimé.USE_DEPRECATED_PYTZ
sera supprimé.pytz
sera supprimée.is_dst
sera supprimé 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()
django.db.models.functions.TruncMonth()
django.db.models.functions.TruncQuarter()
django.db.models.functions.TruncYear()
django.contrib.gis.admin.GeoModelAdmin
et OSMGeoAdmin
seront supprimées.BaseForm._html_output()
sera supprimée.str
au lieu d’une instance SafeString
, lors de la production d’un ErrorDict
ou d’ErrorList
sera supprimée.Consultez les notes de publication de Django 4.1 pour plus de détails sur ces changements.
SitemapIndexItem.__str__()
sera supprimée.CSRF_COOKIE_MASKED
sera supprimé.name
de django.utils.functional.cached_property()
sera supprimé.opclasses
de django.contrib.postgres.constraints.ExclusionConstraint
sera supprimé.errors=None
à SimpleTestCase.assertFormError()
et assertFormsetError()
sera supprimée.django.contrib.sessions.serializers.PickleSerializer
sera supprimé.QuerySet.iterator()
sur un jeu de requête qui précharge les objets liés sans fournir l’argument chunk_size
ne sera plus autorisée.created=True
sera obligatoire dans la signature des sous-classes de RemoteUserBackend.configure_user()
.GET
dans les vues django.contrib.auth.views.LogoutView
et django.contrib.auth.views.logout_then_login()
sera supprimée.django.utils.timezone.utc
vers datetime.timezone.utc
sera supprimé.SimpleTestCase.assertFormError()
et assertFormsetError()
ne sera plus autorisée.django.contrib.gis.admin.OpenLayersWidget
sera supprimé.django.contrib.auth.hashers.CryptPasswordHasher
sera supprimé."django/forms/default.html"
et "django/forms/formsets/default.html"
seront supprimés.nulls_first=False
ou nulls_last=False
aux méthodes Expression.asc()
et Expression.desc()
et à l’expression OrderBy
sera supprimée.Consultez les notes de publication de Django 3.2 pour plus de détails sur ces changements.
copy.deepcopy()
à des attributs de classe dans TestCase.setUpTestData()
sera supprimée.BaseCommand.requires_system_checks
ne prendra plus en charge les valeurs booléennes.whitelist
et l’attribut domain_whitelist
de django.core.validators.EmailValidator
seront supprimés.default_app_config
sera supprimée.TransactionTestCase.assertQuerysetEqual()
n’appellera plus automatiquement repr()
sur un jeu de requête lors de comparaisons avec des valeurs textuelles.django.core.cache.backends.memcached.MemcachedCache
sera supprimée.django.contrib.messages.storage.cookie.CookieStorage
sera supprimée.Consultez les notes de publication de Django 3.0 pour plus de détails sur ces changements.
django.utils.http.urlquote()
, urlquote_plus()
, urlunquote()
et urlunquote_plus()
seront supprimées.django.utils.encoding.force_text()
et smart_text()
seront supprimées.django.utils.translation.ugettext()
, ugettext_lazy()
, ugettext_noop()
, ungettext()
et ungettext_lazy()
seront supprimées.django.views.i18n.set_language()
ne définira plus la langue de l’utilisateur dans request.session
(clé django.utils.translation.LANGUAGE_SESSION_KEY
).alias=None
sera obligatoire dans la signature des sous-classes de django.db.models.Expression.get_group_by_cols()
.django.utils.text.unescape_entities()
sera supprimée.django.utils.http.is_safe_url()
sera supprimée.Consultez les notes de publication de Django 3.1 pour plus de détails sur ces changements.
PASSWORD_RESET_TIMEOUT_DAYS
sera supprimé.isnull
avec des valeurs non booléennes dans la partie droite ne sera plus autorisée.django.db.models.query_utils.InvalidQuery
sera supprimée.django-admin.py
sera supprimé.HttpRequest.is_ajax()
sera supprimée.django.contrib.messages.storage.cookie.CookieStorage
sera supprimée.django.core.signing.Signer
d’avant Django 3.1 (utilisant l’algorithme de hachage SHA-1) sera supprimée.django.core.signing.dumps()
d’avant Django 3.1 (utilisant l’algorithme de hachage SHA-1) sera supprimée dans django.core.signing.loads()
.get_response
de django.utils.deprecation.MiddlewareMixin.__init__()
sera obligatoire et n’acceptera plus None
.providing_args
de django.dispatch.Signal
sera supprimé.length
de django.utils.crypto.get_random_string()
sera obligatoire.list
de ModelMultipleChoiceField
sera supprimé.QuerySet.order_by()
sera supprimée.NullBooleanField
sera supprimé. Un champ factice restera pour des raisons de compatibilité avec les migrations historiques.django.conf.urls.url()
sera supprimée.django.contrib.postgres.fields.JSONField
sera supprimé. Un champ factice restera pour des raisons de compatibilité avec l’historique des migrations.django.contrib.postgres.forms.JSONField
, django.contrib.postgres.fields.jsonb.KeyTransform
et django.contrib.postgres.fields.jsonb.KeyTextTransform
seront supprimés.{% ifequal %}
et {% ifnotequal %}
seront supprimées.DEFAULT_HASHING_ALGORITHM
sera supprimé.Consultez les notes de publication de Django 2.2 pour plus de détails sur ces changements.
django.utils.timezone.FixedOffset
sera supprimée.django.core.paginator.QuerySetPaginator
sera supprimée.Meta.ordering
des modèles n’affectera plus les requêtes GROUP BY
.django.contrib.postgres.fields.FloatRangeField
et django.contrib.postgres.forms.FloatRangeField
seront supprimés.FILE_CHARSET
sera supprimé.django.contrib.staticfiles.storage.CachedStaticFilesStorage
sera supprimée.RemoteUserBackend.configure_user()
exigera request
comme premier paramètre positionnel.SimpleTestCase.allow_database_queries
et de TransactionTestCase.multi_db
sera supprimée.Consultez les notes de publication de Django 2.0 pour plus de détails sur ces changements.
django.db.backends.postgresql_psycopg2
sera supprimé.django.shortcuts.render_to_response()
sera supprimée.DEFAULT_CONTENT_TYPE
sera supprimé.HttpRequest.xreadlines()
sera supprimée.context
de Field.from_db_value()
et de Expression.convert_value()
sera supprimée.field_name
de QuerySet.earliest()
et de latest()
sera supprimé.Consultez les notes de publication de Django 2.1 pour plus de détails sur ces changements.
django.contrib.gis.db.models.functions.ForceRHR
sera supprimée.django.utils.http.cookie_date()
sera supprimée.staticfiles
et admin_static
seront supprimées.django.contrib.staticfiles.templatetags.static()
sera supprimée.InlineModelAdmin.has_add_permission()
d’être définie sans paramètre obj
sera supprimée.Consultez les notes de publication de Django 1.11 pour plus de détails sur ces changements.
contrib.auth.views.login()
, logout()
, password_change()
, password_change_done()
, password_reset()
, password_reset_done()
, password_reset_confirm()
et password_reset_complete()
seront supprimées.extra_context
de contrib.auth.views.logout_then_login()
sera supprimé.django.test.runner.setup_databases()
sera supprimée.django.utils.translation.string_concat()
sera supprimée.django.core.cache.backends.memcached.PyLibMCCache
ne prendra plus en charge la transmission des réglages de comportement pylibmc
comme attributs de premier niveau des OPTIONS
.host
de django.utils.http.is_safe_url()
sera supprimé.{% include %}
sera supprimé.DatabaseIntrospection.get_indexes()
sera supprimée.authenticate()
des moteurs d’authentification exigera request
comme premier paramètre positionnel.django.db.models.permalink()
sera supprimé.USE_ETAGS
sera supprimé. CommonMiddleware
et django.utils.cache.patch_response_headers()
ne créeront plus d’ETags.Model._meta.has_auto_field
sera supprimé.url()
des drapeaux en ligne dans les groupes d’expressions régulières ((?i)
, (?L)
, (?m)
, (?s)
, and (?u)
) sera supprimée.Widget.render()
sans le paramètre renderer
sera supprimée.Consultez les notes de publication de Django 1.9 pour plus de détails sur ces changements.
weak
de django.dispatch.signals.Signal.disconnect()
sera supprimé.django.db.backends.base.BaseDatabaseOperations.check_aggregate_support()
sera supprimée.django.forms.extras
sera supprimé.assignment_tag
sera supprimé.host
de assertsRedirects
sera supprimé. La couche de compatibilité qui permet de considérer les URL absolues égales aux URL relatives lorsque le chemin est identique sera également supprimée.Field.rel
sera supprimé.Field.remote_field.to
sera supprimé.on_delete
de ForeignKey
et OneToOneField
deviendra obligatoire.django.db.models.fields.add_lazy_relation()
sera supprimée.cursor.execute()
.django.contrib.auth.tests.utils.skipIfCustomUser()
sera supprimé.GeoManager
et GeoQuerySet
seront supprimées.django.contrib.gis.geoip
sera supprimé.supports_recursion
pour les chargeurs de gabarit sera supprimé de :django.template.engine.Engine.find_template()
django.template.loader_tags.ExtendsNode.find_template()
django.template.loaders.base.Loader.supports_recursion()
django.template.loaders.cached.Loader.supports_recursion()
load_template()
et load_template_sources()
seront supprimées.template_dirs
des chargeurs de gabarit sera supprimé de :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.Loader.get_template_sources()
django.template.loaders.base.Loader.__call__()
sera supprimée.mime_type
de django.utils.feedgenerator.Atom1Feed
et de django.utils.feedgenerator.RssFeed
sera supprimé en faveur de content_type
.app_name
de django.conf.urls.include()
sera supprimé.include()
sera supprimée.Field._get_val_from_obj()
sera supprimée en faveur de Field.value_from_object()
.django.template.loaders.eggs.Loader
sera supprimée.current_app
de contrib.auth
sera supprimé.callable_obj
de SimpleTestCase.assertRaisesMessage()
sera supprimé.allow_tags
des méthodes ModelAdmin
sera supprimée.enclosure
de SyndicationFeed.add_item()
sera supprimé.django.template.loader.LoaderOrigin
et django.template.base.StringOrigin
de django.template.base.Origin
seront supprimés.Consultez les notes de publication de Django 1.10 pour plus de détails sur ces changements.
makemigrations --exit
sera supprimée.get_srid()
et set_srid()
de django.contrib.gis.geos.GEOSGeometry
seront supprimées.get_x()
, set_x()
, get_y()
, set_y()
, get_z()
et set_z()
de django.contrib.gis.geos.Point
seront supprimées.get_coords()
et set_coords()
de django.contrib.gis.geos.Point
seront supprimées.cascaded_union
de django.contrib.gis.geos.MultiPolygon
sera supprimée.django.utils.functional.allow_lazy()
sera supprimée.shell --plain
sera supprimée.django.core.urlresolvers
sera supprimé.CommaSeparatedIntegerField
sera supprimé. Un champ factice restera pour des raisons de compatibilité avec les migrations historiques.Context.has_key()
sera supprimée.django.core.files.storage.Storage.accessed_time()
, created_time()
et modified_time()
sera supprimée.Meta.default_related_name
est défini ne seront plus prises en charge.__search
et la méthode DatabaseOperations.fulltext_search_sql()
seront supprimées._apply_rel_filters()
sera supprimé.User.is_authenticated()
et de User.is_anonymous()
sous forme de méthode ne sera plus prise en charge.virtual_fields
de Model._meta
sera supprimé.virtual_only
dans Field.contribute_to_class()
et virtual
dans Model._meta.add_field()
seront supprimés.javascript_catalog()
et json_catalog()
seront supprimées.django.contrib.gis.utils.precision_wkt()
sera supprimée.OneToOneField
vers un lien parent_link
sera supprimée.Widget._format_value()
sera supprimée.get_directory_name()
et get_filename()
de FileField
seront supprimées.mark_for_escaping()
et les classes qu’elle utilise : EscapeData
, EscapeBytes
, EscapeText
, EscapeString
et EscapeUnicode
seront supprimées.escape
sera modifié pour utiliser django.utils.html.conditional_escape()
.Manager.use_for_related_fields
sera supprimé.Manager
des modèles va suivre les règles d’héritage MRO et l’attribut Meta.manager_inheritance_from_future
qui active ce comportement sera supprimé.settings.MIDDLEWARE_CLASSES
sera supprimée.Consultez les notes de publication de Django 1.8 pour plus de détails sur ces changements.
SQLCompiler
comme alias pour appeler sa méthode quote_name_unless_alias
sera supprimée.cycle
et firstof
seront supprimées de la bibliothèque de balises de gabarit future
(utilisées durant la période d’obsolescence 1.6/1.7).django.conf.urls.patterns()
sera supprimée.prefix
de django.conf.urls.i18n.i18n_patterns()
sera supprimée.SimpleTestCase.urls
sera supprimé.for
produira une exception et n’échouera plus de manière silencieuse.LOGIN_URL
et LOGIN_REDIRECT_URL
sera supprimée.optparse
pour les commandes d’administration personnalisées sera supprimée (remplacée par argparse
).django.core.management.NoArgsCommand
sera supprimée. Utilisez BaseCommand
à la place, qui n’accepte aucun argument par défaut.django.core.context_processors
sera supprimé.djangodb.models.sql.aggregates
sera supprimé.django.contrib.gis.db.models.sql.aggregates
sera supprimé.django.db.sql.query.Query
seront supprimées :aggregates
et aggregate_select
add_aggregate
, set_aggregate_mask
et append_aggregate_mask
.django.template.resolve_variable
sera supprimée.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()
error_message
de django.forms.RegexField
sera supprimé.unordered_list
ne prendra plus en charge les listes de l’ancien style.view
sous forme de texte dans url()
sera supprimée.django.forms.Form._has_changed()
en has_changed()
sera supprimée.removetags
sera supprimé.remove_tags()
et strip_entities()
de django.utils.html
seront supprimées.is_admin_site
de django.contrib.auth.views.password_reset()
sera supprimé.django.db.models.field.subclassing.SubfieldBase
sera supprimée.django.utils.checksums
sera supprimée ; cette fonctionnalité est incluse dans django-localflavor
1.1+.original_content_type_id
de django.contrib.admin.helpers.InlineAdminForm
sera supprimé.FormMixin.get_form()
d’être définie sans valeur par défaut pour son paramètre form_class
sera supprimée.ALLOWED_INCLUDE_ROOTS
TEMPLATE_CONTEXT_PROCESSORS
TEMPLATE_DEBUG
TEMPLATE_DIRS
TEMPLATE_LOADERS
TEMPLATE_STRING_IF_INVALID
django.template.loader.BaseLoader
sera supprimé.get_template()
et select_template()
n’accepteront plus de Context
dans leur méthode render()
.dict
et d’objets de gabarit dépendants du moteur au lieu de respectivement Context
et de Template
.current_app
sera supprimé des fonction et classes suivantes :django.shortcuts.render()
django.template.Context()
django.template.RequestContext()
django.template.response.TemplateResponse()
dictionary
et context_instance
seront supprimés des fonctions suivantes :django.shortcuts.render()
django.shortcuts.render_to_response()
django.template.loader.render_to_string()
dirs
sera supprimé des fonctions suivantes :django.template.loader.get_template()
django.template.loader.select_template()
django.shortcuts.render()
django.shortcuts.render_to_response()
'django.contrib.auth.middleware.SessionAuthenticationMiddleware'
dans MIDDLEWARE_CLASSES
.django.db.models.Field.related
sera supprimé.--list
de la commande d’administration migrate
sera supprimée.ssi
sera supprimée.=
sera supprimée dans la balise de gabarit if
.Storage.get_available_name()
et Storage.save()
sans argument max_length
seront supprimés.%(<foo>)s
dans ModelFormMixin.success_url
sera supprimée.GeoQuerySet
collect()
, extent()
, extent3d()
, make_line()
et unionagg()
seront supprimées.ContentType.name
lors de la création d’une instance de type de contenu sera supprimée.allow_migrate
sera supprimée. Elle a changé de allow_migrate(self, db, model)
à allow_migrate(self, db, app_label, model_name=None, **hints)
.{% cycle %}
utilisant les arguments séparés par des virgules sera supprimée.Signer
lorsqu’elle reçoit un séparateur non valable deviendra une exception.Consultez les notes de publication de Django 1.7 pour plus de détails sur ces changements.
django.utils.dictconfig
sera supprimé.django.utils.importlib
sera supprimé.django.utils.tzinfo
sera supprimé.django.utils.unittest
sera supprimé.syncdb
sera supprimée.django.db.models.signals.pre_syncdb
et django.db.models.signals.post_syncdb
seront supprimés.allow_syncdb
sur les routeurs de base de données ne deviendra plus automatiquement allow_migrate
.--run-syncdb
est transmise à la commande migrate
.sql
, sqlall
, sqlclear
, sqldropindexes
et sqlindexes
seront supprimées.initial_data
et des données SQL initiales sera supprimée.app_label
explicite. De plus, il ne sera plus possible de les importer avant que leur application soit chargée. En particulier, il ne sera plus possible d’importer des modèles dans le paquet racine de leur application.IPAddressField
seront supprimés. Un champ de substitution restera pour des raisons de compatibilité avec l’historique des migrations.AppCommand.handle_app()
ne sera plus prise en charge.RequestSite
et get_current_site()
ne pourront plus être importés à partir de django.contrib.sites.models
.runfcgi
sera supprimée. Veuillez déployer votre projet avec WSGI.django.utils.datastructures.SortedDict
sera supprimé. Utilisez à la place collections.OrderedDict
de la bibliothèque Python standard.ModelAdmin.declared_fieldsets
sera supprimé.util.py
dans la base de code de Django ont été renommées en utils.py
dans un effort d’unification de toutes les références à util
et utils
. Les modules qui garantissent une rétrocompatibilité seront supprimés.django.contrib.admin.util
django.contrib.gis.db.backends.util
django.db.backends.util
django.forms.util
ModelAdmin.get_formsets
sera supprimé.BaseMemcachedCache._get_memcache_timeout()
en get_backend_timeout()
sera supprimé.--natural
et -n
de dumpdata
seront supprimées.use_natural_keys
de serializers.serialize()
sera supprimé.django.forms.forms.get_declared_fields()
sera supprimée.SplitDateTimeWidget
avec DateTimeField
sera supprimée.WSGIRequest.REQUEST
sera supprimée.django.utils.datastructures.MergeDict
sera supprimée.zh-cn
et zh-tw
seront supprimés et remplacés respectivement par les codes de langues zh-hans
et zh-hant
.django.utils.functional.memoize
sera supprimée.django.core.cache.get_cache
sera supprimée. Ajoutez plutôt les lignes adéquates dans CACHES
et utilisez django.core.cache.caches
.django.db.models.loading
sera supprimée.BaseCommand.requires_model_validation
sera supprimé en faveur de requires_system_checks
.ModelAdmin.validator_class
et default_validator_class
seront supprimés.ModelAdmin.validate()
sera supprimée.django.db.backends.DatabaseValidation.validate_field
sera supprimée en faveur de la méthode check_field
.validate
sera supprimée.django.utils.module_loading.import_by_path
sera supprimé en faveur de django.utils.module_loading.import_string
.ssi
et url
seront supprimées de la bibliothèque de balises de gabarit future
(utilisées durant la période d’obsolescence 1.3/1.4).django.utils.text.javascript_quote
sera supprimé.TEST_
ne seront plus pris en charge.cache_choices
de ModelChoiceField
et ModelMultipleChoiceField
sera supprimée.RedirectView.permanent
sera modifié de True
à False
.django.contrib.sitemaps.FlatPageSitemap
sera supprimée en faveur de django.contrib.flatpages.sitemaps.FlatPageSitemap
.django.test.utils.TestTemplateLoader
sera supprimée.django.contrib.contenttypes.generic
sera supprimé.django.db.models.sql.where.WhereNode.make_atom()
et django.db.models.sql.where.Constraint
seront supprimées.Consultez les notes de publication de Django 1.6 pour plus de détails sur ces changements.
django.contrib.comments
sera supprimé.TransactionMiddleware
,autocommit
, commit_on_success
et commit_manually
, définis dans django.db.transaction
,commit_unless_managed
et rollback_unless_managed
, aussi définies dans django.db.transaction
,TRANSACTIONS_MANAGED
.cycle
et firstof
vont automatiquement échapper leurs paramètres. Dans 1.6 et 1.7, ce comportement est offert par les versions de ces balises dans la bibliothèque de balises de gabarit future
.SEND_BROKEN_LINK_EMAILS
sera supprimé. Ajoutez plutôt l’intergiciel django.middleware.common.BrokenLinkEmailsMiddleware
à votre réglage MIDDLEWARE_CLASSES
.django.middleware.doc.XViewMiddleware
sera supprimé. Utilisez django.contrib.admindocs.middleware.XViewMiddleware
à la place.Model._meta.module_name
a été renommé en model_name
.get_query_set
et les méthodes similaires de jeux de requêtes. Cela affecte les classes suivantes : BaseModelAdmin
, ChangeList
, BaseCommentNode
, GenericForeignKey
, Manager
, SingleRelatedObjectDescriptor
et ReverseSingleRelatedObjectDescriptor
.ChangeList.root_query_set
et ChangeList.query_set
.django.views.defaults.shortcut
sera supprimée, dans le cadre de l’objectif de supprimer toutes les références à django.contrib
dans le code du cœur de Django. Utilisez django.contrib.contenttypes.views.shortcut
à la place. django.conf.urls.shortcut
sera aussi supprimée.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
sera supprimé en faveur de django.forms.widgets.RadioChoiceInput
.django.test.simple
et la classe django.test.simple.DjangoTestSuiteRunner
seront supprimés. Utilisez django.test.runner.DiscoverRunner
à la place.django.test._doctest
sera supprimé. Utilisez à la place le module doctest de la bibliothèque Python standard.CACHE_MIDDLEWARE_ANONYMOUS_ONLY
sera supprimé.help_text
des formulaires pour les champs de modèle ManyToMany ne sera plus appliquée par Django, ni pour les modèles, ni pour les formulaires.Model._meta.get_(add|change|delete)_permission
seront supprimées.django_language
ne sera plus lue comme elle l’était par rétrocompatibilité.django.contrib.gis.sitemaps.views.index
et django.contrib.gis.sitemaps.views.sitemap
).django.utils.html.fix_ampersands
, le filtre de gabarit fix_ampersands
et django.utils.html.clean_html
seront supprimés selon une obsolescence accélérée.Consultez les notes de publication de Django 1.5 pour plus de détails sur ces changements.
django.utils.simplejson
sera supprimé. La bibliothèque standard fournit json
qui doit être utilisé à la place.django.utils.itercompat.product
sera supprimée. La version intégrée à Python doit être utilisée à la place.mimetype
des méthodes __init__
de class:~django.http.HttpResponse, SimpleTemplateResponse
et TemplateResponse
sera supprimé. Il faut utiliser content_type
à la place. Cela s’applique aussi au raccourci render_to_response()
et aux vues des plans de sites, index()
et sitemap()
.HttpResponse
est instanciée avec un itérateur ou lorsque content
est défini à un itérateur, ce dernier sera immédiatement consommé.AUTH_PROFILE_MODULE
ainsi que la méthode get_profile()
du modèle User
seront supprimés.cleanup
sera supprimée. Elle est remplacée par clearsessions
.daily_cleanup.py
sera supprimé.depth
sera supprimé de select_related()
.get_warnings_state()
/restore_warnings_state()
de django.test.utils
et les méthodes django.test.*TestCase save_warnings_state()
/ restore_warnings_state()
sont obsolètes. Utilisez plutôt le gestionnaire de contexte warnings.catch_warnings
disponible à partir de Python 2.6.check_for_test_cookie
dans AuthenticationForm
sera supprimée à la suite d’une obsolescence accélérée. Les personnes héritant de ce formulaire doivent supprimer les appels à cette méthode et s’assurer à la place que leurs vues liées à l’authentification soient protégées par CSRF, ce qui garantit que les cookies sont activés.django.contrib.auth.views.password_reset_confirm()
qui prend en charge les identifiants d’utilisateur codés en base36 (django.contrib.auth.views.password_reset_confirm_uidb36`) sera supprimée. Si votre site a fonctionné sous Django 1.6 pendant plus de PASSWORD_RESET_TIMEOUT_DAYS
jours, ce changement n’aura aucun effet. Sinon, tout lien de réinitialisation de mot de passe généré avant de mettre à jour à Django 1.7 ne fonctionnera plus après la mise à jour.django.utils.encoding.StrAndUnicode
sera supprimée.Consultez les notes de publication de Django 1.4 pour plus de détails sur ces changements.
django.contrib.databrowse
sera supprimée.django.contrib.localflavor
sera supprimée suite à une obsolescence accélérée.django.contrib.markup
sera supprimée suite à une obsolescence accélérée.django.utils.copycompat
et django.utils.hashcompat
de même que les fonctions django.utils.itercompat.all
et django.utils.itercompat.any
seront supprimées. Les versions intégrées à Python doivent être utilisées à la place.csrf_response_exempt
et csrf_view_exempt
seront supprimés. Depuis la version 1.4, csrf_response_exempt
était sans effet (elle renvoie la même fonction) et csrf_view_exempt
était un synonyme de django.views.decorators.csrf.csrf_exempt
, qui doit être utilisée pour la remplacer.django.core.cache.backends.memcached.CacheClass
a été séparé en deux dans Django 1.3 afin d’ajouter la prise en charge de PyLibMC. La classe historique CacheClass
sera supprimée en faveur de django.core.cache.backends.memcached.MemcachedCache
.django.contrib.localflavor.uk
ne seront plus disponibles que sous leur nom préfixé avec GB (GB est le code ISO 3166 correct pour le Royaume-Uni).IGNORABLE_404_STARTS
et IGNORABLE_404_ENDS
ont été remplacés par IGNORABLE_404_URLS
dans la version 1.4. Ils seront supprimés.cache_page()
seront supprimées.'mail_admins'
sera supprimé. Le réglage LOGGING
devrait inclure ce filtre explicitement s’il est souhaité.django.utils.text.truncate_words()
et django.utils.text.truncate_html_words()
seront supprimées en faveur de la nouvelle classe django.utils.text.Truncator
.django.contrib.gis.geoip.GeoIP
a été déplacée dans django.contrib.gis.geoip
dans la version 1.4 – le raccourci dans django.contrib.gis.utils
sera supprimé.django.conf.urls.defaults
sera supprimée. Les fonctions include()
, patterns()
et url()
, ainsi que handler404
et handler500
sont dorénavant disponibles par django.conf.urls
.setup_environ()
et execute_manager()
seront supprimées de django.core.management
. Cela signifie aussi que l’ancien (pré-1.4) style de fichier manage.py
ne fonctionnera plus.is_safe
et needs_autoescape
en tant qu’attributs des fonctions de filtres de gabarits ne sera plus prise en charge.HttpRequest.raw_post_data
a été renommé en HttpRequest.body
dans 1.4. La rétrocompatibilité sera supprimée – HttpRequest.raw_post_data
ne sera plus disponible.post_url_continue
dans ModelAdmin.response_add()
devra soit valoir None
(pour rediriger vers la page d’édition de l’objet nouvellement créé) soit contenir une URL préformatée. Les substitutions de chaînes, telles que la valeur par défaut précédente '../%s/'
, ne seront plus acceptées.Consultez les notes de publication de Django 1.3 pour plus de détails sur ces changements.
SECRET_KEY
produira une exception au lieu d’un avertissement DeprecationWarning
(le procédé d’obsolescence a été accéléré, voir les notes de publication de Django 1.4).mod_python
sera supprimé. Le gestionnaire mod_wsgi
devrait être utilisé à la place.template
des objets django.test.client.Response
renvoyés par le client de test sera supprimé. L’attribut templates
devrait être utilisé à la place.django.test.simple.DjangoTestRunner
sera supprimé. Utilisez à la place une classe intégrée de unittest
. Les fonctionnalités de django.test.simple.DjangoTestRunner
(y compris l’échec rapide et l’interruption des tests par Ctrl-C) sont aussi disponibles dans unittest.TextTestRunner
.django.contrib.formtools.utils.security_hash
sera supprimée. Utilisez django.contrib.formtools.utils.form_hmac
à la place.django.core.servers.basehttp.AdminMediaHandler
sera supprimé. Utilisez django.contrib.staticfiles.handlers.StaticFilesHandler
à sa place.adminmedia
et la balise de gabarit {% admin_media_prefix %}
seront supprimés en faveur de la gestion générique des fichiers statiques (suppression accélérée par rapport au processus d’obsolescence habituel, voir les notes de publication de Django 1.4).url
et ssi
seront modifiées pour que le premier argument de chaque balise soit une variable de gabarit et non automatiquement une chaîne. Dans 1.4, ce comportement est fourni par une version de la balise dans la bibliothèque de balises de gabarits future
.reset
et sqlreset
seront supprimées.supports_inactive_user
ne sera plus pris en compte et peut être supprimé de tout moteur personnalisé.transform()
générera une exception GEOSException
lorsqu’on lui transmet une géométrie sans valeur de SRID.django.http.CompatCookie
sera supprimée en faveur de django.http.SimpleCookie
.django.core.context_processors.PermWrapper
et django.core.context_processors.PermLookupDict
seront supprimés en faveur de respectivement django.contrib.auth.context_processors.PermWrapper
et django.contrib.auth.context_processors.PermLookupDict
.MEDIA_URL
et STATIC_URL
devront obligatoirement se terminer par une barre oblique pour s’assurer que la manière de combiner les chemins dans les gabarits soit harmonisée.django.db.models.fields.URLField.verify_exists
sera supprimée. La fonctionnalité a été rendue obsolète dans 1.3.1 en raison de problèmes de sécurité et de performance insurmontables, et son obsolescence a donc été accélérée.LOCALE_PATHS
peut être utilisé pour la même tâche en incluant comme valeur le chemin sur le système de fichiers vers un répertoire locale
contenant des traductions non liées à une application précise.CACHE_BACKEND
sera supprimé. Les moteurs de cache doivent être indiqués dans le réglage CACHES
.Consultez les notes de publication de Django 1.2 pour plus de détails sur ces changements.
CsrfResponseMiddleware
et CsrfMiddleware
seront supprimés. Utilisez la balise de gabarit {% csrf_token %}
dans les formulaires pour activer la protection CSRF. CsrfViewMiddleware
est conservée et activée par défaut.django.contrib.csrf.*
), qui sont passées dans le cœur Django dans la version 1.2 seront supprimées.django.contrib.gis.db.backend
sera supprimé en faveur des moteurs spécifiques.SMTPConnection
sera supprimée en faveur d’une API générique de moteur de courriels.DATABASE_*
pour définir les connexions de base de données sera supprimée.sqlite3
au lieu de django.db.backends.sqlite3
) sera supprimée.get_db_prep_save
, get_db_prep_value
et get_db_prep_lookup
devront prendre en charge les bases de données multiples.Message
(dans django.contrib.auth
), son gestionnaire d’objets liés dans le modèle User
(user.message_set
) et ses méthodes associées (user.message_set.create()
et user.get_and_delete_messages()
) seront supprimées. Il est recommandé d’utiliser l’infrastructure des messages à la place. La variable liée messages
renvoyée par le processeur de contexte auth
sera également supprimée. Notez que cela signifie que l’application admin va dépendre du processeur de contexte des messages.obj
pour le contrôle des permissions. L’attribut supports_object_permissions
ne sera plus pris en compte et peut être supprimé de tout moteur personnalisé.AnonymousUser
transmise à toutes les méthodes s’occupant de permissions. La variable supports_anonymous_user
ne sera plus prise en compte et peut être supprimée de tout moteur personnalisé.Loader
sera supprimée, tout comme les fonctions load_template_source
qui sont incluses avec les chargeurs de gabarits intégrés par rétrocompatibilité.django.utils.translation.get_date_formats()
et django.utils.translation.get_partial_date_formats()
. Ces fonctions seront supprimées ; utilisez django.utils.formats.get_format()` qui est sensible à la locale active pour obtenir les bons formats.django.forms.fields
, les constantes DEFAULT_DATE_INPUT_FORMATS
, DEFAULT_TIME_INPUT_FORMATS
et DEFAULT_DATETIME_INPUT_FORMATS
seront supprimées. Utilisez django.utils.formats.get_format()
pour obtenir les formats appropriés.django.test.simple.run_tests()
.views.feed()
et la classe feeds.Feed
dans django.contrib.syndication
seront supprimées. La vue basée sur une classe views.Feed
doit être utilisée à la place.django.core.context_processors.auth
. Cette publication va supprimer l’ancienne méthode en faveur de la nouvelle méthode dans django.contrib.auth.context_processors.auth
.postgresql
sera supprimé, utilisez à la place le moteur postgresql_psycopg2
.no
sera supprimé car il a été remplacé par le code de langue nb
.supports_inactive_user
jusqu’à la version 1.5 qui considérera comme acquis le fait que tous les moteurs savent gérer les utilisateurs inactifs.django.db.models.fields.XMLField
sera supprimée. Elle a été rendue obsolète dans la version 1.3. Une obsolescence accélérée a été choisie car ce champ n’avait déjà plus aucune fonction supplémentaire qu’un simple TextField
depuis la suppression de oldforms
. Toutes les occurrences de XMLField
peuvent être remplacées par le type de champ TextField
.mixin
de la méthode open()
de django.core.files.storage.Storage
(et ses sous-classes) sera supprimé.Consultez les notes de publication de Django 1.1 pour plus de détails sur ces changements.
AdminSite.root()
. Cette méthode de branchement des URL d’administration sera supprimée en faveur de l’inclusion de admin.site.urls
.supports_object_permissions
et supports_anonymous_user
jusqu’à la version 1.4, après quoi Django supposera que tous les moteurs savent gérer ces options.août 06, 2024