{"title":"Calendrier d’obsolescence de Django","version":"3.2","locale":"fr","docname":"internals/deprecation","url":"/fr/3.2/internals/deprecation/","canonical":"https://djangodocs.dev/fr/3.2/internals/deprecation/","summary":"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…","html":"<h1>Calendrier d’obsolescence de Django<a class=\"heading-anchor\" href=\"#django-deprecation-timeline\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h1>\n<p>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 <a class=\"reference internal\" href=\"/fr/3.2/internals/release-process/#internal-release-deprecation-policy\"><span class=\"std std-ref\">politique d’obsolescence</span></a>. 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.</p>\n<section id=\"deprecation-removed-in-4-1\">\n<span id=\"id1\"></span><h2>4.1<a class=\"heading-anchor\" href=\"#deprecation-removed-in-4-1\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Consultez les <a class=\"reference internal\" href=\"/fr/3.2/releases/3.2/#deprecated-features-3-2\"><span class=\"std std-ref\">notes de publication de Django 3.2</span></a> pour plus de détails sur ces changements.</p>\n<ul class=\"simple\">\n<li><p>La prise en charge de l’attribution d’objets ne pouvant pas être copiés profondément par <code class=\"docutils literal notranslate\"><span class=\"pre\">copy.deepcopy()</span></code> à des attributs de classe dans <code class=\"docutils literal notranslate\"><span class=\"pre\">TestCase.setUpTestData()</span></code> sera supprimée.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">BaseCommand.requires_system_checks</span></code> ne prendra plus en charge les valeurs booléennes.</p></li>\n<li><p>L’argument <code class=\"docutils literal notranslate\"><span class=\"pre\">whitelist</span></code> et l’attribut <code class=\"docutils literal notranslate\"><span class=\"pre\">domain_whitelist</span></code> de <code class=\"docutils literal notranslate\"><span class=\"pre\">django.core.validators.EmailValidator</span></code> seront supprimés.</p></li>\n<li><p>La variable de module <code class=\"docutils literal notranslate\"><span class=\"pre\">default_app_config</span></code> sera supprimée.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">TransactionTestCase.assertQuerysetEqual()</span></code> will no longer automatically\ncall <code class=\"docutils literal notranslate\"><span class=\"pre\">repr()</span></code> on a queryset when compared to string values.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.core.cache.backends.memcached.MemcachedCache</span></code> will be removed.</p></li>\n<li><p>Support for the pre-Django 3.2 format of messages used by\n<code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.messages.storage.cookie.CookieStorage</span></code> will be removed.</p></li>\n</ul>\n</section>\n<section id=\"deprecation-removed-in-4-0\">\n<span id=\"id2\"></span><h2>4.0<a class=\"heading-anchor\" href=\"#deprecation-removed-in-4-0\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Consultez les <a class=\"reference internal\" href=\"/fr/3.2/releases/3.0/#deprecated-features-3-0\"><span class=\"std std-ref\">notes de publication de Django 3.0</span></a> pour plus de détails sur ces changements.</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.http.urlquote()</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">urlquote_plus()</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">urlunquote()</span></code> et <code class=\"docutils literal notranslate\"><span class=\"pre\">urlunquote_plus()</span></code> seront supprimées.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.encoding.force_text()</span></code> et <code class=\"docutils literal notranslate\"><span class=\"pre\">smart_text()</span></code> seront supprimées.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.translation.ugettext()</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">ugettext_lazy()</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">ugettext_noop()</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">ungettext()</span></code> et <code class=\"docutils literal notranslate\"><span class=\"pre\">ungettext_lazy()</span></code> seront supprimées.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.views.i18n.set_language()</span></code> ne définira plus la langue de l’utilisateur dans <code class=\"docutils literal notranslate\"><span class=\"pre\">request.session</span></code> (clé <code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.translation.LANGUAGE_SESSION_KEY</span></code>).</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">alias=None</span></code> sera obligatoire dans la signature des sous-classes de <code class=\"docutils literal notranslate\"><span class=\"pre\">django.db.models.Expression.get_group_by_cols()</span></code>.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.text.unescape_entities()</span></code> sera supprimée.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.http.is_safe_url()</span></code> sera supprimée.</p></li>\n</ul>\n<p>Consultez les <a class=\"reference internal\" href=\"/fr/3.2/releases/3.1/#deprecated-features-3-1\"><span class=\"std std-ref\">notes de publication de Django 3.1</span></a> pour plus de détails sur ces changements.</p>\n<ul class=\"simple\">\n<li><p>Le réglage <code class=\"docutils literal notranslate\"><span class=\"pre\">PASSWORD_RESET_TIMEOUT_DAYS</span></code> sera supprimé.</p></li>\n<li><p>L’utilisation non documentée de l’expression de requête <a class=\"reference internal\" href=\"/fr/3.2/ref/models/querysets/#std-fieldlookup-isnull\"><code class=\"xref std std-lookup docutils literal notranslate\"><span class=\"pre\">isnull</span></code></a> avec des valeurs non booléennes dans la partie droite ne sera plus autorisée.</p></li>\n<li><p>La classe d’exception <code class=\"docutils literal notranslate\"><span class=\"pre\">django.db.models.query_utils.InvalidQuery</span></code> sera supprimée.</p></li>\n<li><p>Le point d’entrée <code class=\"docutils literal notranslate\"><span class=\"pre\">django-admin.py</span></code> sera supprimé.</p></li>\n<li><p>La méthode <code class=\"docutils literal notranslate\"><span class=\"pre\">HttpRequest.is_ajax()</span></code> sera supprimée.</p></li>\n<li><p>La prise en charge du format de codage des cookies d’avant Django 3.1 utilisé par <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.messages.storage.cookie.CookieStorage</span></code> sera supprimée.</p></li>\n<li><p>La prise en charge des jetons de réinitialisation des mots de passe d’avant Django 3.1 dans le site d’administration (qui utilise l’algorithme de hachage SHA-1) sera supprimée.</p></li>\n<li><p>La prise en charge du format de codage des sessions d’avant Django 3.1 sera supprimée.</p></li>\n<li><p>La prise en charge des signatures <code class=\"docutils literal notranslate\"><span class=\"pre\">django.core.signing.Signer</span></code> d’avant Django 3.1 (utilisant l’algorithme de hachage SHA-1) sera supprimée.</p></li>\n<li><p>La prise en charge des signatures <code class=\"docutils literal notranslate\"><span class=\"pre\">django.core.signing.dumps()</span></code> d’avant Django 3.1 (utilisant l’algorithme de hachage SHA-1) sera supprimée dans <code class=\"docutils literal notranslate\"><span class=\"pre\">django.core.signing.loads()</span></code>.</p></li>\n<li><p>La prise en charge des sessions d’utilisateurs d’avant Django 3.1 (utilisant l’algorithme de hachage SHA-1) sera supprimée.</p></li>\n<li><p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">get_response</span></code> argument for\n<code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.deprecation.MiddlewareMixin.__init__()</span></code> will be required and\nwon’t accept <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>.</p></li>\n<li><p>L’argument <code class=\"docutils literal notranslate\"><span class=\"pre\">providing_args</span></code> de <code class=\"docutils literal notranslate\"><span class=\"pre\">django.dispatch.Signal</span></code> sera supprimé.</p></li>\n<li><p>Le paramètre <code class=\"docutils literal notranslate\"><span class=\"pre\">length</span></code> de <code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.crypto.get_random_string()</span></code> sera obligatoire.</p></li>\n<li><p>Le message <code class=\"docutils literal notranslate\"><span class=\"pre\">list</span></code> de <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelMultipleChoiceField</span></code> sera supprimé.</p></li>\n<li><p>La prise en charge de la transmission d’alias de colonnes bruts à <code class=\"docutils literal notranslate\"><span class=\"pre\">QuerySet.order_by()</span></code> sera supprimée.</p></li>\n<li><p>Le modèle <code class=\"docutils literal notranslate\"><span class=\"pre\">NullBooleanField</span></code> sera supprimé. Un champ factice restera pour des raisons de compatibilité avec les migrations historiques.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.conf.urls.url()</span></code> sera supprimée.</p></li>\n<li><p>Le modèle <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.postgres.fields.JSONField</span></code> sera supprimé. Un champ factice restera pour des raisons de compatibilité avec l’historique des migrations.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.postgres.forms.JSONField</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.postgres.fields.jsonb.KeyTransform</span></code> et <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.postgres.fields.jsonb.KeyTextTransform</span></code> seront supprimés.</p></li>\n<li><p>Les balises de gabarit <code class=\"docutils literal notranslate\"><span class=\"pre\">{%</span> <span class=\"pre\">ifequal</span> <span class=\"pre\">%}</span></code> et <code class=\"docutils literal notranslate\"><span class=\"pre\">{%</span> <span class=\"pre\">ifnotequal</span> <span class=\"pre\">%}</span></code> seront supprimées.</p></li>\n<li><p>Le réglage temporaire <code class=\"docutils literal notranslate\"><span class=\"pre\">DEFAULT_HASHING_ALGORITHM</span></code> sera supprimé.</p></li>\n</ul>\n</section>\n<section id=\"deprecation-removed-in-3-1\">\n<span id=\"id3\"></span><h2>3.1<a class=\"heading-anchor\" href=\"#deprecation-removed-in-3-1\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Consultez les <a class=\"reference internal\" href=\"/fr/3.2/releases/2.2/#deprecated-features-2-2\"><span class=\"std std-ref\">notes de publication de Django 2.2</span></a> pour plus de détails sur ces changements.</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.timezone.FixedOffset</span></code> sera supprimée.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.core.paginator.QuerySetPaginator</span></code> sera supprimée.</p></li>\n<li><p>L’attribut <code class=\"docutils literal notranslate\"><span class=\"pre\">Meta.ordering</span></code> des modèles n’affectera plus les requêtes <code class=\"docutils literal notranslate\"><span class=\"pre\">GROUP</span> <span class=\"pre\">BY</span></code>.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.postgres.fields.FloatRangeField</span></code> et <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.postgres.forms.FloatRangeField</span></code> seront supprimés.</p></li>\n<li><p>Le réglage <code class=\"docutils literal notranslate\"><span class=\"pre\">FILE_CHARSET</span></code> sera supprimé.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.staticfiles.storage.CachedStaticFilesStorage</span></code> sera supprimée.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">RemoteUserBackend.configure_user()</span></code> exigera <code class=\"docutils literal notranslate\"><span class=\"pre\">request</span></code> comme premier paramètre positionnel.</p></li>\n<li><p>La prise en charge de <code class=\"docutils literal notranslate\"><span class=\"pre\">SimpleTestCase.allow_database_queries</span></code> et de <code class=\"docutils literal notranslate\"><span class=\"pre\">TransactionTestCase.multi_db</span></code> sera supprimée.</p></li>\n</ul>\n</section>\n<section id=\"deprecation-removed-in-3-0\">\n<span id=\"id4\"></span><h2>3.0<a class=\"heading-anchor\" href=\"#deprecation-removed-in-3-0\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Consultez les <a class=\"reference internal\" href=\"/fr/3.2/releases/2.0/#deprecated-features-2-0\"><span class=\"std std-ref\">notes de publication de Django 2.0</span></a> pour plus de détails sur ces changements.</p>\n<ul class=\"simple\">\n<li><p>Le module <code class=\"docutils literal notranslate\"><span class=\"pre\">django.db.backends.postgresql_psycopg2</span></code> sera supprimé.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.shortcuts.render_to_response()</span></code> sera supprimée.</p></li>\n<li><p>Le réglage <code class=\"docutils literal notranslate\"><span class=\"pre\">DEFAULT_CONTENT_TYPE</span></code> sera supprimé.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">HttpRequest.xreadlines()</span></code> sera supprimée.</p></li>\n<li><p>La prise en charge du paramètre <code class=\"docutils literal notranslate\"><span class=\"pre\">context</span></code> de <code class=\"docutils literal notranslate\"><span class=\"pre\">Field.from_db_value()</span></code> et de <code class=\"docutils literal notranslate\"><span class=\"pre\">Expression.convert_value()</span></code> sera supprimée.</p></li>\n<li><p>Le paramètre nommé <code class=\"docutils literal notranslate\"><span class=\"pre\">field_name</span></code> de <code class=\"docutils literal notranslate\"><span class=\"pre\">QuerySet.earliest()</span></code> et de <code class=\"docutils literal notranslate\"><span class=\"pre\">latest()</span></code> sera supprimé.</p></li>\n</ul>\n<p>Consultez les <a class=\"reference internal\" href=\"/fr/3.2/releases/2.1/#deprecated-features-2-1\"><span class=\"std std-ref\">notes de publication de Django 2.1</span></a> pour plus de détails sur ces changements.</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.gis.db.models.functions.ForceRHR</span></code> sera supprimée.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.http.cookie_date()</span></code> sera supprimée.</p></li>\n<li><p>Les bibliothèques de balises de gabarits <code class=\"docutils literal notranslate\"><span class=\"pre\">staticfiles</span></code> et <code class=\"docutils literal notranslate\"><span class=\"pre\">admin_static</span></code> seront supprimées.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.staticfiles.templatetags.static()</span></code> sera supprimée.</p></li>\n<li><p>La couche de compatibilité pour permettre à <code class=\"docutils literal notranslate\"><span class=\"pre\">InlineModelAdmin.has_add_permission()</span></code> d’être définie sans paramètre <code class=\"docutils literal notranslate\"><span class=\"pre\">obj</span></code> sera supprimée.</p></li>\n</ul>\n</section>\n<section id=\"deprecation-removed-in-2-1\">\n<span id=\"id5\"></span><h2>2.1<a class=\"heading-anchor\" href=\"#deprecation-removed-in-2-1\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Consultez les <a class=\"reference internal\" href=\"/fr/3.2/releases/1.11/#deprecated-features-1-11\"><span class=\"std std-ref\">notes de publication de Django 1.11</span></a> pour plus de détails sur ces changements.</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">contrib.auth.views.login()</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">logout()</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">password_change()</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">password_change_done()</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">password_reset()</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">password_reset_done()</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">password_reset_confirm()</span></code> et <code class=\"docutils literal notranslate\"><span class=\"pre\">password_reset_complete()</span></code> seront supprimées.</p></li>\n<li><p>Le paramètre <code class=\"docutils literal notranslate\"><span class=\"pre\">extra_context</span></code> de <code class=\"docutils literal notranslate\"><span class=\"pre\">contrib.auth.views.logout_then_login()</span></code> sera supprimé.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.test.runner.setup_databases()</span></code> sera supprimée.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.translation.string_concat()</span></code> sera supprimée.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.core.cache.backends.memcached.PyLibMCCache</span></code> ne prendra plus en charge la transmission des réglages de comportement <code class=\"docutils literal notranslate\"><span class=\"pre\">pylibmc</span></code> comme attributs de premier niveau des <code class=\"docutils literal notranslate\"><span class=\"pre\">OPTIONS</span></code>.</p></li>\n<li><p>Le paramètre <code class=\"docutils literal notranslate\"><span class=\"pre\">host</span></code> de <code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.http.is_safe_url()</span></code> sera supprimé.</p></li>\n<li><p>Le masquage des exceptions produites lors du rendu de la balise de gabarit <code class=\"docutils literal notranslate\"><span class=\"pre\">{%</span> <span class=\"pre\">include</span> <span class=\"pre\">%}</span></code> sera supprimé.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">DatabaseIntrospection.get_indexes()</span></code> sera supprimée.</p></li>\n<li><p>La méthode <code class=\"docutils literal notranslate\"><span class=\"pre\">authenticate()</span></code> des moteurs d’authentification exigera <code class=\"docutils literal notranslate\"><span class=\"pre\">request</span></code> comme premier paramètre positionnel.</p></li>\n<li><p>Le décorateur <code class=\"docutils literal notranslate\"><span class=\"pre\">django.db.models.permalink()</span></code> sera supprimé.</p></li>\n<li><p>Le réglage <code class=\"docutils literal notranslate\"><span class=\"pre\">USE_ETAGS</span></code> sera supprimé.  <code class=\"docutils literal notranslate\"><span class=\"pre\">CommonMiddleware</span></code> et <code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.cache.patch_response_headers()</span></code> ne créeront plus d’ETags.</p></li>\n<li><p>L’attribut <code class=\"docutils literal notranslate\"><span class=\"pre\">Model._meta.has_auto_field</span></code> sera supprimé.</p></li>\n<li><p>La prise en charge de <code class=\"docutils literal notranslate\"><span class=\"pre\">url()</span></code> des drapeaux en ligne dans les groupes d’expressions régulières (<code class=\"docutils literal notranslate\"><span class=\"pre\">(?i)</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">(?L)</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">(?m)</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">(?s)</span></code>, and <code class=\"docutils literal notranslate\"><span class=\"pre\">(?u)</span></code>) sera supprimée.</p></li>\n<li><p>La prise en charge des méthodes <code class=\"docutils literal notranslate\"><span class=\"pre\">Widget.render()</span></code> sans le paramètre <code class=\"docutils literal notranslate\"><span class=\"pre\">renderer</span></code> sera supprimée.</p></li>\n</ul>\n</section>\n<section id=\"deprecation-removed-in-2-0\">\n<span id=\"id6\"></span><h2>2.0<a class=\"heading-anchor\" href=\"#deprecation-removed-in-2-0\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Consultez les <a class=\"reference internal\" href=\"/fr/3.2/releases/1.9/#deprecated-features-1-9\"><span class=\"std std-ref\">notes de publication de Django 1.9</span></a> pour plus de détails sur ces changements.</p>\n<ul class=\"simple\">\n<li><p>Le paramètre <code class=\"docutils literal notranslate\"><span class=\"pre\">weak</span></code> de <code class=\"docutils literal notranslate\"><span class=\"pre\">django.dispatch.signals.Signal.disconnect()</span></code> sera supprimé.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.db.backends.base.BaseDatabaseOperations.check_aggregate_support()</span></code> sera supprimée.</p></li>\n<li><p>Le paquet <code class=\"docutils literal notranslate\"><span class=\"pre\">django.forms.extras</span></code> sera supprimé.</p></li>\n<li><p>L’utilitaire <code class=\"docutils literal notranslate\"><span class=\"pre\">assignment_tag</span></code> sera supprimé.</p></li>\n<li><p>Le paramètre <code class=\"docutils literal notranslate\"><span class=\"pre\">host</span></code> de <code class=\"docutils literal notranslate\"><span class=\"pre\">assertsRedirects</span></code> 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.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">Field.rel</span></code> sera supprimé.</p></li>\n<li><p>L’attribut <code class=\"docutils literal notranslate\"><span class=\"pre\">Field.remote_field.to</span></code> sera supprimé.</p></li>\n<li><p>Le paramètre <code class=\"docutils literal notranslate\"><span class=\"pre\">on_delete</span></code> de <code class=\"docutils literal notranslate\"><span class=\"pre\">ForeignKey</span></code> et <code class=\"docutils literal notranslate\"><span class=\"pre\">OneToOneField</span></code> deviendra obligatoire.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.db.models.fields.add_lazy_relation()</span></code> sera supprimée.</p></li>\n<li><p>Lorsque la prise en charge des fuseaux horaires est active, les moteurs de base de données qui ne prennent pas en charge les fuseaux horaires ne vont plus convertir les dates/heures avec fuseau en valeurs UTC naïves lorsque de telles valeurs sont transmises en paramètre à des requêtes SQL exécutées en dehors de l’ORM, par exemple avec <code class=\"docutils literal notranslate\"><span class=\"pre\">cursor.execute()</span></code>.</p></li>\n<li><p>Le décorateur <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.auth.tests.utils.skipIfCustomUser()</span></code> sera supprimé.</p></li>\n<li><p>Les classes <code class=\"docutils literal notranslate\"><span class=\"pre\">GeoManager</span></code> et <code class=\"docutils literal notranslate\"><span class=\"pre\">GeoQuerySet</span></code> seront supprimées.</p></li>\n<li><p>Le module <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.gis.geoip</span></code> sera supprimé.</p></li>\n<li><p>Le contrôle <code class=\"docutils literal notranslate\"><span class=\"pre\">supports_recursion</span></code> pour les chargeurs de gabarit sera supprimé de :</p>\n<ul>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.template.engine.Engine.find_template()</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.template.loader_tags.ExtendsNode.find_template()</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.template.loaders.base.Loader.supports_recursion()</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.template.loaders.cached.Loader.supports_recursion()</span></code></p></li>\n</ul>\n</li>\n<li><p>Les méthodes de chargeur de gabarit <code class=\"docutils literal notranslate\"><span class=\"pre\">load_template()</span></code> et <code class=\"docutils literal notranslate\"><span class=\"pre\">load_template_sources()</span></code> seront supprimées.</p></li>\n<li><p>Le paramètre <code class=\"docutils literal notranslate\"><span class=\"pre\">template_dirs</span></code> des chargeurs de gabarit sera supprimé de :</p>\n<ul>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.template.loaders.base.Loader.get_template()</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.template.loaders.cached.Loader.cache_key()</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.template.loaders.cached.Loader.get_template()</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.template.loaders.cached.Loader.get_template_sources()</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.template.loaders.filesystem.Loader.get_template_sources()</span></code></p></li>\n</ul>\n</li>\n<li><p>La méthode <code class=\"docutils literal notranslate\"><span class=\"pre\">django.template.loaders.base.Loader.__call__()</span></code> sera supprimée.</p></li>\n<li><p>La prise en charge des vues d’erreur personnalisées avec un seul paramètre positionnel sera supprimée.</p></li>\n<li><p>L’attribut <code class=\"docutils literal notranslate\"><span class=\"pre\">mime_type</span></code> de <code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.feedgenerator.Atom1Feed</span></code> et de <code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.feedgenerator.RssFeed</span></code> sera supprimé en faveur de <code class=\"docutils literal notranslate\"><span class=\"pre\">content_type</span></code>.</p></li>\n<li><p>Le paramètre <code class=\"docutils literal notranslate\"><span class=\"pre\">app_name</span></code> de <code class=\"docutils literal notranslate\"><span class=\"pre\">django.conf.urls.include()</span></code> sera supprimé.</p></li>\n<li><p>La prise en charge de la transmission d’un tuple à 3 comme premier paramètre de <code class=\"docutils literal notranslate\"><span class=\"pre\">include()</span></code> sera supprimée.</p></li>\n<li><p>Support for setting a URL instance namespace without an application\nnamespace will be removed.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">Field._get_val_from_obj()</span></code> sera supprimée en faveur de <code class=\"docutils literal notranslate\"><span class=\"pre\">Field.value_from_object()</span></code>.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.template.loaders.eggs.Loader</span></code> sera supprimée.</p></li>\n<li><p>Le paramètre <code class=\"docutils literal notranslate\"><span class=\"pre\">current_app</span></code> de <code class=\"docutils literal notranslate\"><span class=\"pre\">contrib.auth</span></code> sera supprimé.</p></li>\n<li><p>Le paramètre nommé <code class=\"docutils literal notranslate\"><span class=\"pre\">callable_obj</span></code> de <code class=\"docutils literal notranslate\"><span class=\"pre\">SimpleTestCase.assertRaisesMessage()</span></code> sera supprimé.</p></li>\n<li><p>La prise en charge de l’attribut <code class=\"docutils literal notranslate\"><span class=\"pre\">allow_tags</span></code> des méthodes <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin</span></code> sera supprimée.</p></li>\n<li><p>Le paramètre nommé <code class=\"docutils literal notranslate\"><span class=\"pre\">enclosure</span></code> de <code class=\"docutils literal notranslate\"><span class=\"pre\">SyndicationFeed.add_item()</span></code> sera supprimé.</p></li>\n<li><p>Les alias <code class=\"docutils literal notranslate\"><span class=\"pre\">django.template.loader.LoaderOrigin</span></code> et <code class=\"docutils literal notranslate\"><span class=\"pre\">django.template.base.StringOrigin</span></code> de <code class=\"docutils literal notranslate\"><span class=\"pre\">django.template.base.Origin</span></code> seront supprimés.</p></li>\n</ul>\n<p>Consultez les <a class=\"reference internal\" href=\"/fr/3.2/releases/1.10/#deprecated-features-1-10\"><span class=\"std std-ref\">notes de publication de Django 1.10</span></a> pour plus de détails sur ces changements.</p>\n<ul class=\"simple\">\n<li><p>L’option <code class=\"docutils literal notranslate\"><span class=\"pre\">makemigrations</span> <span class=\"pre\">--exit</span></code> sera supprimée.</p></li>\n<li><p>La prise en charge de l’attribution directe à une clé étrangère inversée ou à des relations plusieurs-à-plusieurs sera supprimée.</p></li>\n<li><p>Les méthodes <code class=\"docutils literal notranslate\"><span class=\"pre\">get_srid()</span></code> et <code class=\"docutils literal notranslate\"><span class=\"pre\">set_srid()</span></code> de <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.gis.geos.GEOSGeometry</span></code> seront supprimées.</p></li>\n<li><p>Les méthodes <code class=\"docutils literal notranslate\"><span class=\"pre\">get_x()</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">set_x()</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">get_y()</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">set_y()</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">get_z()</span></code> et  <code class=\"docutils literal notranslate\"><span class=\"pre\">set_z()</span></code> de <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.gis.geos.Point</span></code> seront supprimées.</p></li>\n<li><p>Les méthodes <code class=\"docutils literal notranslate\"><span class=\"pre\">get_coords()</span></code> et <code class=\"docutils literal notranslate\"><span class=\"pre\">set_coords()</span></code> de <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.gis.geos.Point</span></code> seront supprimées.</p></li>\n<li><p>La propriété <code class=\"docutils literal notranslate\"><span class=\"pre\">cascaded_union</span></code> de <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.gis.geos.MultiPolygon</span></code> sera supprimée.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.functional.allow_lazy()</span></code> sera supprimée.</p></li>\n<li><p>L’option <code class=\"docutils literal notranslate\"><span class=\"pre\">shell</span> <span class=\"pre\">--plain</span></code> sera supprimée.</p></li>\n<li><p>Le module <code class=\"docutils literal notranslate\"><span class=\"pre\">django.core.urlresolvers</span></code> sera supprimé.</p></li>\n<li><p>Le modèle <code class=\"docutils literal notranslate\"><span class=\"pre\">CommaSeparatedIntegerField</span></code> sera supprimé. Un champ factice restera pour des raisons de compatibilité avec les migrations historiques.</p></li>\n<li><p>La prise en charge de la méthode de gabarit <code class=\"docutils literal notranslate\"><span class=\"pre\">Context.has_key()</span></code> sera supprimée.</p></li>\n<li><p>La prise en charge des méthodes <code class=\"docutils literal notranslate\"><span class=\"pre\">django.core.files.storage.Storage.accessed_time()</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">created_time()</span></code> et <code class=\"docutils literal notranslate\"><span class=\"pre\">modified_time()</span></code> sera supprimée.</p></li>\n<li><p>Support for query lookups using the model name when\n<code class=\"docutils literal notranslate\"><span class=\"pre\">Meta.default_related_name</span></code> is set will be removed.</p></li>\n<li><p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">__search</span></code> query lookup and the\n<code class=\"docutils literal notranslate\"><span class=\"pre\">DatabaseOperations.fulltext_search_sql()</span></code> method will be removed.</p></li>\n<li><p>The shim for supporting custom related manager classes without a\n<code class=\"docutils literal notranslate\"><span class=\"pre\">_apply_rel_filters()</span></code> method will be removed.</p></li>\n<li><p>Using <code class=\"docutils literal notranslate\"><span class=\"pre\">User.is_authenticated()</span></code> and <code class=\"docutils literal notranslate\"><span class=\"pre\">User.is_anonymous()</span></code> as methods\nwill no longer be supported.</p></li>\n<li><p>The private attribute <code class=\"docutils literal notranslate\"><span class=\"pre\">virtual_fields</span></code> of <code class=\"docutils literal notranslate\"><span class=\"pre\">Model._meta</span></code> will be removed.</p></li>\n<li><p>The private keyword arguments <code class=\"docutils literal notranslate\"><span class=\"pre\">virtual_only</span></code> in\n<code class=\"docutils literal notranslate\"><span class=\"pre\">Field.contribute_to_class()</span></code> and <code class=\"docutils literal notranslate\"><span class=\"pre\">virtual</span></code> in\n<code class=\"docutils literal notranslate\"><span class=\"pre\">Model._meta.add_field()</span></code> will be removed.</p></li>\n<li><p>Les vues <code class=\"docutils literal notranslate\"><span class=\"pre\">javascript_catalog()</span></code> et <code class=\"docutils literal notranslate\"><span class=\"pre\">json_catalog()</span></code> seront supprimées.</p></li>\n<li><p>La fonction <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.gis.utils.precision_wkt()</span></code> sera supprimée.</p></li>\n<li><p>Dans l’héritage multitable, la promotion implicite d’un champ <code class=\"docutils literal notranslate\"><span class=\"pre\">OneToOneField</span></code> vers un lien <code class=\"docutils literal notranslate\"><span class=\"pre\">parent_link</span></code> sera supprimée.</p></li>\n<li><p>La prise en charge de <code class=\"docutils literal notranslate\"><span class=\"pre\">Widget._format_value()</span></code> sera supprimée.</p></li>\n<li><p>Les méthodes <code class=\"docutils literal notranslate\"><span class=\"pre\">get_directory_name()</span></code> et <code class=\"docutils literal notranslate\"><span class=\"pre\">get_filename()</span></code> de <code class=\"docutils literal notranslate\"><span class=\"pre\">FileField</span></code> seront supprimées.</p></li>\n<li><p>La fonction <code class=\"docutils literal notranslate\"><span class=\"pre\">mark_for_escaping()</span></code> et les classes qu’elle utilise : <code class=\"docutils literal notranslate\"><span class=\"pre\">EscapeData</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">EscapeBytes</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">EscapeText</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">EscapeString</span></code> et <code class=\"docutils literal notranslate\"><span class=\"pre\">EscapeUnicode</span></code> seront supprimées.</p></li>\n<li><p>Le filtre <code class=\"docutils literal notranslate\"><span class=\"pre\">escape</span></code> sera modifié pour utiliser <code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.html.conditional_escape()</span></code>.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">Manager.use_for_related_fields</span></code> sera supprimé.</p></li>\n<li><p>L’héritage de <code class=\"docutils literal notranslate\"><span class=\"pre\">Manager</span></code> des modèles va suivre les règles d’héritage MRO et l’attribut <code class=\"docutils literal notranslate\"><span class=\"pre\">Meta.manager_inheritance_from_future</span></code> qui active ce comportement sera supprimé.</p></li>\n<li><p>La prise en charge de l’ancien style d’intergiciel utilisant <code class=\"docutils literal notranslate\"><span class=\"pre\">settings.MIDDLEWARE_CLASSES</span></code> sera supprimée.</p></li>\n</ul>\n</section>\n<section id=\"deprecation-removed-in-1-10\">\n<span id=\"id7\"></span><h2>1.10<a class=\"heading-anchor\" href=\"#deprecation-removed-in-1-10\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Consultez les <a class=\"reference internal\" href=\"/fr/3.2/releases/1.8/#deprecated-features-1-8\"><span class=\"std std-ref\">notes de publication de Django 1.8</span></a> pour plus de détails sur ces changements.</p>\n<ul class=\"simple\">\n<li><p>La prise en charge de l’appel direct à <code class=\"docutils literal notranslate\"><span class=\"pre\">SQLCompiler</span></code> comme alias pour appeler sa méthode <code class=\"docutils literal notranslate\"><span class=\"pre\">quote_name_unless_alias</span></code> sera supprimée.</p></li>\n<li><p>Les balises de gabarit <code class=\"docutils literal notranslate\"><span class=\"pre\">cycle</span></code> et <code class=\"docutils literal notranslate\"><span class=\"pre\">firstof</span></code> seront supprimées de la bibliothèque de balises de gabarit <code class=\"docutils literal notranslate\"><span class=\"pre\">future</span></code> (utilisées durant la période d’obsolescence 1.6/1.7).</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.conf.urls.patterns()</span></code> sera supprimée.</p></li>\n<li><p>La prise en charge de l’argument <code class=\"docutils literal notranslate\"><span class=\"pre\">prefix</span></code> de <code class=\"docutils literal notranslate\"><span class=\"pre\">django.conf.urls.i18n.i18n_patterns()</span></code> sera supprimée.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">SimpleTestCase.urls</span></code> sera supprimé.</p></li>\n<li><p>L’utilisation d’un nombre incorrect de valeurs dépaquetées dans la balise de gabarit <code class=\"docutils literal notranslate\"><span class=\"pre\">for</span></code> produira une exception et n’échouera plus de manière silencieuse.</p></li>\n<li><p>La possibilité de résoudre des URL avec un chemin Python pointé sera supprimée.</p></li>\n<li><p>La possibilité d’utiliser un chemin Python pointé pour les réglages <code class=\"docutils literal notranslate\"><span class=\"pre\">LOGIN_URL</span></code> et <code class=\"docutils literal notranslate\"><span class=\"pre\">LOGIN_REDIRECT_URL</span></code> sera supprimée.</p></li>\n<li><p>La prise en charge de <a class=\"reference external\" href=\"https://docs.python.org/3/library/optparse.html#module-optparse\" title=\"(disponible dans Python v3.14)\"><code class=\"xref py py-mod docutils literal notranslate\"><span class=\"pre\">optparse</span></code></a> pour les commandes d’administration personnalisées sera supprimée (remplacée par <a class=\"reference external\" href=\"https://docs.python.org/3/library/argparse.html#module-argparse\" title=\"(disponible dans Python v3.14)\"><code class=\"xref py py-mod docutils literal notranslate\"><span class=\"pre\">argparse</span></code></a>).</p></li>\n<li><p>La classe <code class=\"docutils literal notranslate\"><span class=\"pre\">django.core.management.NoArgsCommand</span></code> sera supprimée. Utilisez <a class=\"reference internal\" href=\"/fr/3.2/howto/custom-management-commands/#django.core.management.BaseCommand\" title=\"django.core.management.BaseCommand\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">BaseCommand</span></code></a> à la place, qui n’accepte aucun argument par défaut.</p></li>\n<li><p>Le module <code class=\"docutils literal notranslate\"><span class=\"pre\">django.core.context_processors</span></code> sera supprimé.</p></li>\n<li><p>Le module <code class=\"docutils literal notranslate\"><span class=\"pre\">djangodb.models.sql.aggregates</span></code> sera supprimé.</p></li>\n<li><p>Le module <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.gis.db.models.sql.aggregates</span></code> sera supprimé.</p></li>\n<li><p>Les méthodes et propriétés suivantes de <code class=\"docutils literal notranslate\"><span class=\"pre\">django.db.sql.query.Query</span></code> seront supprimées :</p>\n<ul>\n<li><p>Propriétés : <code class=\"docutils literal notranslate\"><span class=\"pre\">aggregates</span></code> et <code class=\"docutils literal notranslate\"><span class=\"pre\">aggregate_select</span></code></p></li>\n<li><p>Méthodes : <code class=\"docutils literal notranslate\"><span class=\"pre\">add_aggregate</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">set_aggregate_mask</span></code> et <code class=\"docutils literal notranslate\"><span class=\"pre\">append_aggregate_mask</span></code>.</p></li>\n</ul>\n</li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.template.resolve_variable</span></code> sera supprimée.</p></li>\n<li><p>Les API privées suivantes seront supprimées de <a class=\"reference internal\" href=\"/fr/3.2/ref/models/meta/#django.db.models.options.Options\" title=\"django.db.models.options.Options\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.db.models.options.Options</span></code></a> (<code class=\"docutils literal notranslate\"><span class=\"pre\">Model._meta</span></code>) :</p>\n<ul>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">get_field_by_name()</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">get_all_field_names()</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">get_fields_with_model()</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">get_concrete_fields_with_model()</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">get_m2m_with_model()</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">get_all_related_objects()</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">get_all_related_objects_with_model()</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">get_all_related_many_to_many_objects()</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">get_all_related_m2m_objects_with_model()</span></code></p></li>\n</ul>\n</li>\n<li><p>Le paramètre <code class=\"docutils literal notranslate\"><span class=\"pre\">error_message</span></code> de <code class=\"docutils literal notranslate\"><span class=\"pre\">django.forms.RegexField</span></code> sera supprimé.</p></li>\n<li><p>Le filtre <code class=\"docutils literal notranslate\"><span class=\"pre\">unordered_list</span></code> ne prendra plus en charge les listes de l’ancien style.</p></li>\n<li><p>La prise en charge des paramètres de <code class=\"docutils literal notranslate\"><span class=\"pre\">view</span></code> sous forme de texte dans <code class=\"docutils literal notranslate\"><span class=\"pre\">url()</span></code> sera supprimée.</p></li>\n<li><p>La couche de rétrocompatibilité pour renommer <code class=\"docutils literal notranslate\"><span class=\"pre\">django.forms.Form._has_changed()</span></code> en <code class=\"docutils literal notranslate\"><span class=\"pre\">has_changed()</span></code> sera supprimée.</p></li>\n<li><p>Le filtre de gabarit <code class=\"docutils literal notranslate\"><span class=\"pre\">removetags</span></code> sera supprimé.</p></li>\n<li><p>Les fonctions <code class=\"docutils literal notranslate\"><span class=\"pre\">remove_tags()</span></code> et <code class=\"docutils literal notranslate\"><span class=\"pre\">strip_entities()</span></code> de <code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.html</span></code> seront supprimées.</p></li>\n<li><p>Le paramètre <code class=\"docutils literal notranslate\"><span class=\"pre\">is_admin_site</span></code> de <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.auth.views.password_reset()</span></code> sera supprimé.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.db.models.field.subclassing.SubfieldBase</span></code> sera supprimée.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.checksums</span></code> sera supprimée ; cette fonctionnalité est incluse dans <code class=\"docutils literal notranslate\"><span class=\"pre\">django-localflavor</span></code> 1.1+.</p></li>\n<li><p>L’attribut <code class=\"docutils literal notranslate\"><span class=\"pre\">original_content_type_id</span></code> de <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.admin.helpers.InlineAdminForm</span></code> sera supprimé.</p></li>\n<li><p>La couche de compatibilité pour permettre à <code class=\"docutils literal notranslate\"><span class=\"pre\">FormMixin.get_form()</span></code> d’être définie sans valeur par défaut pour son paramètre <code class=\"docutils literal notranslate\"><span class=\"pre\">form_class</span></code> sera supprimée.</p></li>\n<li><p>Les réglages suivants seront supprimés :</p>\n<ul>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">ALLOWED_INCLUDE_ROOTS</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">TEMPLATE_CONTEXT_PROCESSORS</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">TEMPLATE_DEBUG</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">TEMPLATE_DIRS</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">TEMPLATE_LOADERS</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">TEMPLATE_STRING_IF_INVALID</span></code></p></li>\n</ul>\n</li>\n<li><p>L’alias de rétrocompatibilité <code class=\"docutils literal notranslate\"><span class=\"pre\">django.template.loader.BaseLoader</span></code> sera supprimé.</p></li>\n<li><p>Les objets de gabarit Django renvoyés par <a class=\"reference internal\" href=\"/fr/3.2/topics/templates/#django.template.loader.get_template\" title=\"django.template.loader.get_template\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">get_template()</span></code></a> et <a class=\"reference internal\" href=\"/fr/3.2/topics/templates/#django.template.loader.select_template\" title=\"django.template.loader.select_template\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">select_template()</span></code></a> n’accepteront plus de <a class=\"reference internal\" href=\"/fr/3.2/ref/templates/api/#django.template.Context\" title=\"django.template.Context\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Context</span></code></a> dans leur méthode <a class=\"reference internal\" href=\"/fr/3.2/topics/templates/#django.template.backends.base.Template.render\" title=\"django.template.backends.base.Template.render\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">render()</span></code></a>.</p></li>\n<li><p>Les <a class=\"reference internal\" href=\"/fr/3.2/ref/template-response/\"><span class=\"doc\">API de réponse de gabarit</span></a> forceront l’usage de <a class=\"reference external\" href=\"https://docs.python.org/3/library/stdtypes.html#dict\" title=\"(disponible dans Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">dict</span></code></a> et d’objets de gabarit dépendants du moteur au lieu de respectivement <a class=\"reference internal\" href=\"/fr/3.2/ref/templates/api/#django.template.Context\" title=\"django.template.Context\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Context</span></code></a> et de <a class=\"reference internal\" href=\"/fr/3.2/ref/templates/api/#django.template.Template\" title=\"django.template.Template\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Template</span></code></a>.</p></li>\n<li><p>Le paramètre <code class=\"docutils literal notranslate\"><span class=\"pre\">current_app</span></code> sera supprimé des fonction et classes suivantes :</p>\n<ul>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.shortcuts.render()</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.template.Context()</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.template.RequestContext()</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.template.response.TemplateResponse()</span></code></p></li>\n</ul>\n</li>\n<li><p>Les paramètres <code class=\"docutils literal notranslate\"><span class=\"pre\">dictionary</span></code> et <code class=\"docutils literal notranslate\"><span class=\"pre\">context_instance</span></code> seront supprimés des fonctions suivantes :</p>\n<ul>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.shortcuts.render()</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.shortcuts.render_to_response()</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.template.loader.render_to_string()</span></code></p></li>\n</ul>\n</li>\n<li><p>Le paramètre <code class=\"docutils literal notranslate\"><span class=\"pre\">dirs</span></code> sera supprimé des fonctions suivantes :</p>\n<ul>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.template.loader.get_template()</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.template.loader.select_template()</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.shortcuts.render()</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.shortcuts.render_to_response()</span></code></p></li>\n</ul>\n</li>\n<li><p>La vérification des sessions sera active sans tenir compte de la présence de <code class=\"docutils literal notranslate\"><span class=\"pre\">'django.contrib.auth.middleware.SessionAuthenticationMiddleware'</span></code> dans <code class=\"docutils literal notranslate\"><span class=\"pre\">MIDDLEWARE_CLASSES</span></code>.</p></li>\n<li><p>L’attribut privé <code class=\"docutils literal notranslate\"><span class=\"pre\">django.db.models.Field.related</span></code> sera supprimé.</p></li>\n<li><p>L’option <code class=\"docutils literal notranslate\"><span class=\"pre\">--list</span></code> de la commande d’administration <code class=\"docutils literal notranslate\"><span class=\"pre\">migrate</span></code> sera supprimée.</p></li>\n<li><p>La balise de gabarit <code class=\"docutils literal notranslate\"><span class=\"pre\">ssi</span></code> sera supprimée.</p></li>\n<li><p>La prise en charge de l’opérateur de comparaison <code class=\"docutils literal notranslate\"><span class=\"pre\">=</span></code> sera supprimée dans la balise de gabarit <code class=\"docutils literal notranslate\"><span class=\"pre\">if</span></code>.</p></li>\n<li><p>The backwards compatibility shims to allow <code class=\"docutils literal notranslate\"><span class=\"pre\">Storage.get_available_name()</span></code>\nand <code class=\"docutils literal notranslate\"><span class=\"pre\">Storage.save()</span></code> to be defined without a <code class=\"docutils literal notranslate\"><span class=\"pre\">max_length</span></code> argument will\nbe removed.</p></li>\n<li><p>Support for the legacy <code class=\"docutils literal notranslate\"><span class=\"pre\">%(&lt;foo&gt;)s</span></code> syntax in <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelFormMixin.success_url</span></code>\nwill be removed.</p></li>\n<li><p>Les méthodes d’agrégation <code class=\"docutils literal notranslate\"><span class=\"pre\">GeoQuerySet</span></code> <code class=\"docutils literal notranslate\"><span class=\"pre\">collect()</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">extent()</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">extent3d()</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">make_line()</span></code> et <code class=\"docutils literal notranslate\"><span class=\"pre\">unionagg()</span></code> seront supprimées.</p></li>\n<li><p>Ability to specify <code class=\"docutils literal notranslate\"><span class=\"pre\">ContentType.name</span></code> when creating a content type instance\nwill be removed.</p></li>\n<li><p>Support for the old signature of <code class=\"docutils literal notranslate\"><span class=\"pre\">allow_migrate</span></code> will be removed. It changed\nfrom <code class=\"docutils literal notranslate\"><span class=\"pre\">allow_migrate(self,</span> <span class=\"pre\">db,</span> <span class=\"pre\">model)</span></code> to\n<code class=\"docutils literal notranslate\"><span class=\"pre\">allow_migrate(self,</span> <span class=\"pre\">db,</span> <span class=\"pre\">app_label,</span> <span class=\"pre\">model_name=None,</span> <span class=\"pre\">**hints)</span></code>.</p></li>\n<li><p>Support for the syntax of <code class=\"docutils literal notranslate\"><span class=\"pre\">{%</span> <span class=\"pre\">cycle</span> <span class=\"pre\">%}</span></code> that uses comma-separated arguments\nwill be removed.</p></li>\n<li><p>The warning that <a class=\"reference internal\" href=\"/fr/3.2/topics/signing/#django.core.signing.Signer\" title=\"django.core.signing.Signer\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Signer</span></code></a> issues when given an\ninvalid separator will become an exception.</p></li>\n</ul>\n</section>\n<section id=\"deprecation-removed-in-1-9\">\n<span id=\"id8\"></span><h2>1.9<a class=\"heading-anchor\" href=\"#deprecation-removed-in-1-9\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Consultez les <a class=\"reference internal\" href=\"/fr/3.2/releases/1.7/#deprecated-features-1-7\"><span class=\"std std-ref\">notes de publication de Django 1.7</span></a> pour plus de détails sur ces changements.</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.dictconfig</span></code> sera supprimé.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.importlib</span></code> sera supprimé.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.tzinfo</span></code> sera supprimé.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.unittest</span></code> sera supprimé.</p></li>\n<li><p>La commande <code class=\"docutils literal notranslate\"><span class=\"pre\">syncdb</span></code> sera supprimée.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.db.models.signals.pre_syncdb</span></code> et <code class=\"docutils literal notranslate\"><span class=\"pre\">django.db.models.signals.post_syncdb</span></code> seront supprimés.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">allow_syncdb</span></code> on database routers will no longer automatically become\n<code class=\"docutils literal notranslate\"><span class=\"pre\">allow_migrate</span></code>.</p></li>\n<li><p>Automatic syncing of apps without migrations will be removed. Migrations will\nbecome compulsory for all apps unless you pass the <code class=\"docutils literal notranslate\"><span class=\"pre\">--run-syncdb</span></code> option to\n<code class=\"docutils literal notranslate\"><span class=\"pre\">migrate</span></code>.</p></li>\n<li><p>The SQL management commands for apps without migrations, <code class=\"docutils literal notranslate\"><span class=\"pre\">sql</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">sqlall</span></code>,\n<code class=\"docutils literal notranslate\"><span class=\"pre\">sqlclear</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">sqldropindexes</span></code>, and <code class=\"docutils literal notranslate\"><span class=\"pre\">sqlindexes</span></code>, will be removed.</p></li>\n<li><p>La prise en charge du chargement automatique des instantanés <code class=\"docutils literal notranslate\"><span class=\"pre\">initial_data</span></code> et des données SQL initiales sera supprimée.</p></li>\n<li><p>Tous les modèles devront être définis dans une application installée ou déclarer une option <a class=\"reference internal\" href=\"/fr/3.2/ref/models/options/#django.db.models.Options.app_label\" title=\"django.db.models.Options.app_label\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">app_label</span></code></a> 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.</p></li>\n<li><p>Les champ de modèle et de formulaire <code class=\"docutils literal notranslate\"><span class=\"pre\">IPAddressField</span></code> seront supprimés. Un champ de substitution restera pour des raisons de compatibilité avec l’historique des migrations.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">AppCommand.handle_app()</span></code> ne sera plus prise en charge.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">RequestSite</span></code> et <code class=\"docutils literal notranslate\"><span class=\"pre\">get_current_site()</span></code> ne pourront plus être importés à partir de <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.sites.models</span></code>.</p></li>\n<li><p>La prise en charge de FastCGI par la commande d’administration <code class=\"docutils literal notranslate\"><span class=\"pre\">runfcgi</span></code> sera supprimée. Veuillez déployer votre projet avec WSGI.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.datastructures.SortedDict</span></code> sera supprimé. Utilisez à la place <a class=\"reference external\" href=\"https://docs.python.org/3/library/collections.html#collections.OrderedDict\" title=\"(disponible dans Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">collections.OrderedDict</span></code></a> de la bibliothèque Python standard.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin.declared_fieldsets</span></code> sera supprimé.</p></li>\n<li><p>Instances of <code class=\"docutils literal notranslate\"><span class=\"pre\">util.py</span></code> in the Django codebase have been renamed to\n<code class=\"docutils literal notranslate\"><span class=\"pre\">utils.py</span></code> in an effort to unify all util and utils references.\nThe modules that provided backwards compatibility will be removed:</p>\n<ul>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.admin.util</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.gis.db.backends.util</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.db.backends.util</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.forms.util</span></code></p></li>\n</ul>\n</li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin.get_formsets</span></code> sera supprimé.</p></li>\n<li><p>The backward compatibility shim introduced to rename the\n<code class=\"docutils literal notranslate\"><span class=\"pre\">BaseMemcachedCache._get_memcache_timeout()</span></code> method to\n<code class=\"docutils literal notranslate\"><span class=\"pre\">get_backend_timeout()</span></code> will be removed.</p></li>\n<li><p>Les options <code class=\"docutils literal notranslate\"><span class=\"pre\">--natural</span></code> et <code class=\"docutils literal notranslate\"><span class=\"pre\">-n</span></code> de <a class=\"reference internal\" href=\"/fr/3.2/ref/django-admin/#django-admin-dumpdata\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">dumpdata</span></code></a> seront supprimées.</p></li>\n<li><p>Le paramètre <code class=\"docutils literal notranslate\"><span class=\"pre\">use_natural_keys</span></code> de <code class=\"docutils literal notranslate\"><span class=\"pre\">serializers.serialize()</span></code> sera supprimé.</p></li>\n<li><p>L’API privée <code class=\"docutils literal notranslate\"><span class=\"pre\">django.forms.forms.get_declared_fields()</span></code> sera supprimée.</p></li>\n<li><p>La possibilité d’utiliser un composant <code class=\"docutils literal notranslate\"><span class=\"pre\">SplitDateTimeWidget</span></code> avec <code class=\"docutils literal notranslate\"><span class=\"pre\">DateTimeField</span></code> sera supprimée.</p></li>\n<li><p>La propriété <code class=\"docutils literal notranslate\"><span class=\"pre\">WSGIRequest.REQUEST</span></code> sera supprimée.</p></li>\n<li><p>La classe <code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.datastructures.MergeDict</span></code> sera supprimée.</p></li>\n<li><p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">zh-cn</span></code> and <code class=\"docutils literal notranslate\"><span class=\"pre\">zh-tw</span></code> language codes will be removed and have been\nreplaced by the <code class=\"docutils literal notranslate\"><span class=\"pre\">zh-hans</span></code> and <code class=\"docutils literal notranslate\"><span class=\"pre\">zh-hant</span></code> language code respectively.</p></li>\n<li><p>La fonction interne <code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.functional.memoize</span></code> sera supprimée.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.core.cache.get_cache</span></code> sera supprimée. Ajoutez plutôt les lignes adéquates dans <a class=\"reference internal\" href=\"/fr/3.2/ref/settings/#std-setting-CACHES\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">CACHES</span></code></a> et utilisez <a class=\"reference internal\" href=\"/fr/3.2/topics/cache/#django.core.cache.caches\" title=\"django.core.cache.caches\"><code class=\"xref py py-data docutils literal notranslate\"><span class=\"pre\">django.core.cache.caches</span></code></a>.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.db.models.loading</span></code> sera supprimée.</p></li>\n<li><p>La transmission de paramètres exécutables aux jeux de requête ne sera plus possible.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">BaseCommand.requires_model_validation</span></code> sera supprimé en faveur de <code class=\"docutils literal notranslate\"><span class=\"pre\">requires_system_checks</span></code>.</p></li>\n<li><p>Les attributs <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin.validator_class</span></code> et <code class=\"docutils literal notranslate\"><span class=\"pre\">default_validator_class</span></code> seront supprimés.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin.validate()</span></code> sera supprimée.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.db.backends.DatabaseValidation.validate_field</span></code> will be removed in\nfavor of the <code class=\"docutils literal notranslate\"><span class=\"pre\">check_field</span></code> method.</p></li>\n<li><p>La commande d’administration <code class=\"docutils literal notranslate\"><span class=\"pre\">validate</span></code> sera supprimée.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.module_loading.import_by_path</span></code> sera supprimé en faveur de <code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.module_loading.import_string</span></code>.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">ssi</span></code> and <code class=\"docutils literal notranslate\"><span class=\"pre\">url</span></code> template tags will be removed from the <code class=\"docutils literal notranslate\"><span class=\"pre\">future</span></code> template\ntag library (used during the 1.3/1.4 deprecation period).</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.text.javascript_quote</span></code> sera supprimé.</p></li>\n<li><p>Database test settings as independent entries in the database settings,\nprefixed by <code class=\"docutils literal notranslate\"><span class=\"pre\">TEST_</span></code>, will no longer be supported.</p></li>\n<li><p>L’option <code class=\"docutils literal notranslate\"><span class=\"pre\">cache_choices</span></code> de <a class=\"reference internal\" href=\"/fr/3.2/ref/forms/fields/#django.forms.ModelChoiceField\" title=\"django.forms.ModelChoiceField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ModelChoiceField</span></code></a> et <a class=\"reference internal\" href=\"/fr/3.2/ref/forms/fields/#django.forms.ModelMultipleChoiceField\" title=\"django.forms.ModelMultipleChoiceField\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ModelMultipleChoiceField</span></code></a> sera supprimée.</p></li>\n<li><p>La valeur par défaut de l’attribut <a class=\"reference internal\" href=\"/fr/3.2/ref/class-based-views/base/#django.views.generic.base.RedirectView.permanent\" title=\"django.views.generic.base.RedirectView.permanent\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">RedirectView.permanent</span></code></a> sera modifié de <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> à <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.sitemaps.FlatPageSitemap</span></code> sera supprimée en faveur de <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.flatpages.sitemaps.FlatPageSitemap</span></code>.</p></li>\n<li><p>L’API privée <code class=\"docutils literal notranslate\"><span class=\"pre\">django.test.utils.TestTemplateLoader</span></code> sera supprimée.</p></li>\n<li><p>Le module <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.contenttypes.generic</span></code> sera supprimé.</p></li>\n<li><p>Les API privées <code class=\"docutils literal notranslate\"><span class=\"pre\">django.db.models.sql.where.WhereNode.make_atom()</span></code> et <code class=\"docutils literal notranslate\"><span class=\"pre\">django.db.models.sql.where.Constraint</span></code> seront supprimées.</p></li>\n</ul>\n</section>\n<section id=\"deprecation-removed-in-1-8\">\n<span id=\"id9\"></span><h2>1.8<a class=\"heading-anchor\" href=\"#deprecation-removed-in-1-8\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Consultez les <a class=\"reference internal\" href=\"/fr/3.2/releases/1.6/#deprecated-features-1-6\"><span class=\"std std-ref\">notes de publication de Django 1.6</span></a> pour plus de détails sur ces changements.</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.comments</span></code> sera supprimé.</p></li>\n<li><p>Les API de gestion des transactions suivantes seront supprimées :</p>\n<ul>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">TransactionMiddleware</span></code>,</p></li>\n<li><p>les décorateurs et gestionnaires de contexte <code class=\"docutils literal notranslate\"><span class=\"pre\">autocommit</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">commit_on_success</span></code> et <code class=\"docutils literal notranslate\"><span class=\"pre\">commit_manually</span></code>, définis dans <code class=\"docutils literal notranslate\"><span class=\"pre\">django.db.transaction</span></code>,</p></li>\n<li><p>les fonctions <code class=\"docutils literal notranslate\"><span class=\"pre\">commit_unless_managed</span></code> et <code class=\"docutils literal notranslate\"><span class=\"pre\">rollback_unless_managed</span></code>, aussi définies dans <code class=\"docutils literal notranslate\"><span class=\"pre\">django.db.transaction</span></code>,</p></li>\n<li><p>le réglage <code class=\"docutils literal notranslate\"><span class=\"pre\">TRANSACTIONS_MANAGED</span></code>.</p></li>\n</ul>\n</li>\n<li><p>The <a class=\"reference internal\" href=\"/fr/3.2/ref/templates/builtins/#std-templatetag-cycle\"><code class=\"xref std std-ttag docutils literal notranslate\"><span class=\"pre\">cycle</span></code></a> and <a class=\"reference internal\" href=\"/fr/3.2/ref/templates/builtins/#std-templatetag-firstof\"><code class=\"xref std std-ttag docutils literal notranslate\"><span class=\"pre\">firstof</span></code></a> template tags will auto-escape their\narguments. In 1.6 and 1.7, this behavior is provided by the version of these\ntags in the <code class=\"docutils literal notranslate\"><span class=\"pre\">future</span></code> template tag library.</p></li>\n<li><p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">SEND_BROKEN_LINK_EMAILS</span></code> setting will be removed. Add the\n<a class=\"reference internal\" href=\"/fr/3.2/ref/middleware/#django.middleware.common.BrokenLinkEmailsMiddleware\" title=\"django.middleware.common.BrokenLinkEmailsMiddleware\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.middleware.common.BrokenLinkEmailsMiddleware</span></code></a> middleware to\nyour <code class=\"docutils literal notranslate\"><span class=\"pre\">MIDDLEWARE_CLASSES</span></code> setting instead.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.middleware.doc.XViewMiddleware</span></code> sera supprimé. Utilisez <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.admindocs.middleware.XViewMiddleware</span></code> à la place.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">Model._meta.module_name</span></code> a été renommé en <code class=\"docutils literal notranslate\"><span class=\"pre\">model_name</span></code>.</p></li>\n<li><p>Remove the backward compatible shims introduced to rename <code class=\"docutils literal notranslate\"><span class=\"pre\">get_query_set</span></code>\nand similar queryset methods. This affects the following classes:\n<code class=\"docutils literal notranslate\"><span class=\"pre\">BaseModelAdmin</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">ChangeList</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">BaseCommentNode</span></code>,\n<code class=\"docutils literal notranslate\"><span class=\"pre\">GenericForeignKey</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">Manager</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">SingleRelatedObjectDescriptor</span></code> and\n<code class=\"docutils literal notranslate\"><span class=\"pre\">ReverseSingleRelatedObjectDescriptor</span></code>.</p></li>\n<li><p>Remove the backward compatible shims introduced to rename the attributes\n<code class=\"docutils literal notranslate\"><span class=\"pre\">ChangeList.root_query_set</span></code> and <code class=\"docutils literal notranslate\"><span class=\"pre\">ChangeList.query_set</span></code>.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.views.defaults.shortcut</span></code> sera supprimée, dans le cadre de l’objectif de supprimer toutes les références à <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib</span></code> dans le code du cœur de Django. Utilisez <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.contenttypes.views.shortcut</span></code> à la place. <code class=\"docutils literal notranslate\"><span class=\"pre\">django.conf.urls.shortcut</span></code> sera aussi supprimée.</p></li>\n<li><p>Le module Python Imaging Library (PIL) ne sera plus pris en charge, car il ne semble plus activement maintenu et qu’il ne fonctionne pas avec Python 3.</p></li>\n<li><p>Les API privées suivantes seront supprimées :</p>\n<ul>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.db.backend</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.db.close_connection()</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.db.backends.creation.BaseDatabaseCreation.set_autocommit()</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.db.transaction.is_managed()</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.db.transaction.managed()</span></code></p></li>\n</ul>\n</li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.forms.widgets.RadioInput</span></code> sera supprimé en faveur de <code class=\"docutils literal notranslate\"><span class=\"pre\">django.forms.widgets.RadioChoiceInput</span></code>.</p></li>\n<li><p>Le module <code class=\"docutils literal notranslate\"><span class=\"pre\">django.test.simple</span></code> et la classe <code class=\"docutils literal notranslate\"><span class=\"pre\">django.test.simple.DjangoTestSuiteRunner</span></code> seront supprimés. Utilisez <code class=\"docutils literal notranslate\"><span class=\"pre\">django.test.runner.DiscoverRunner</span></code> à la place.</p></li>\n<li><p>Le module <code class=\"docutils literal notranslate\"><span class=\"pre\">django.test._doctest</span></code> sera supprimé. Utilisez à la place le module doctest de la bibliothèque Python standard.</p></li>\n<li><p>Le réglage <code class=\"docutils literal notranslate\"><span class=\"pre\">CACHE_MIDDLEWARE_ANONYMOUS_ONLY</span></code> sera supprimé.</p></li>\n<li><p>Usage of the hard-coded <em>Hold down « Control », or « Command » on a Mac, to select\nmore than one.</em> string to override or append to user-provided <code class=\"docutils literal notranslate\"><span class=\"pre\">help_text</span></code> in\nforms for ManyToMany model fields will not be performed by Django anymore\neither at the model or forms layer.</p></li>\n<li><p>Les méthodes <code class=\"docutils literal notranslate\"><span class=\"pre\">Model._meta.get_(add|change|delete)_permission</span></code> seront supprimées.</p></li>\n<li><p>La clé de session <code class=\"docutils literal notranslate\"><span class=\"pre\">django_language</span></code> ne sera plus lue comme elle l’était par rétrocompatibilité.</p></li>\n<li><p>Les plans de site géographiques seront supprimés (<code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.gis.sitemaps.views.index</span></code> et <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.gis.sitemaps.views.sitemap</span></code>).</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.html.fix_ampersands</span></code>, le filtre de gabarit <code class=\"docutils literal notranslate\"><span class=\"pre\">fix_ampersands</span></code> et <code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.html.clean_html</span></code> seront supprimés selon une obsolescence accélérée.</p></li>\n</ul>\n</section>\n<section id=\"deprecation-removed-in-1-7\">\n<span id=\"id10\"></span><h2>1.7<a class=\"heading-anchor\" href=\"#deprecation-removed-in-1-7\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Consultez les <a class=\"reference internal\" href=\"/fr/3.2/releases/1.5/#deprecated-features-1-5\"><span class=\"std std-ref\">notes de publication de Django 1.5</span></a> pour plus de détails sur ces changements.</p>\n<ul class=\"simple\">\n<li><p>Le module <code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.simplejson</span></code> sera supprimé. La bibliothèque standard fournit <a class=\"reference external\" href=\"https://docs.python.org/3/library/json.html#module-json\" title=\"(disponible dans Python v3.14)\"><code class=\"xref py py-mod docutils literal notranslate\"><span class=\"pre\">json</span></code></a> qui doit être utilisé à la place.</p></li>\n<li><p>La fonction <code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.itercompat.product</span></code> sera supprimée. La version intégrée à Python doit être utilisée à la place.</p></li>\n<li><p>La correction automatique des réglages INSTALLED_APPS et TEMPLATE_DIRS lorsqu’ils contiennent des chaînes au lieu de tuples sera supprimée et produira une exception.</p></li>\n<li><p>L’argument <code class=\"docutils literal notranslate\"><span class=\"pre\">mimetype</span></code> des méthodes <code class=\"docutils literal notranslate\"><span class=\"pre\">__init__</span></code> de class:~django.http.HttpResponse, <a class=\"reference internal\" href=\"/fr/3.2/ref/template-response/#django.template.response.SimpleTemplateResponse\" title=\"django.template.response.SimpleTemplateResponse\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">SimpleTemplateResponse</span></code></a> et <a class=\"reference internal\" href=\"/fr/3.2/ref/template-response/#django.template.response.TemplateResponse\" title=\"django.template.response.TemplateResponse\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">TemplateResponse</span></code></a> sera supprimé. Il faut utiliser <code class=\"docutils literal notranslate\"><span class=\"pre\">content_type</span></code> à la place. Cela s’applique aussi au raccourci <code class=\"docutils literal notranslate\"><span class=\"pre\">render_to_response()</span></code> et aux vues des plans de sites, <a class=\"reference internal\" href=\"/fr/3.2/ref/contrib/sitemaps/#django.contrib.sitemaps.views.index\" title=\"django.contrib.sitemaps.views.index\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">index()</span></code></a> et <a class=\"reference internal\" href=\"/fr/3.2/ref/contrib/sitemaps/#django.contrib.sitemaps.views.sitemap\" title=\"django.contrib.sitemaps.views.sitemap\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">sitemap()</span></code></a>.</p></li>\n<li><p>Lorsque <a class=\"reference internal\" href=\"/fr/3.2/ref/request-response/#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">HttpResponse</span></code></a> est instanciée avec un itérateur ou lorsque <a class=\"reference internal\" href=\"/fr/3.2/ref/request-response/#django.http.HttpResponse.content\" title=\"django.http.HttpResponse.content\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">content</span></code></a> est défini à un itérateur, ce dernier sera immédiatement consommé.</p></li>\n<li><p>Le réglage <code class=\"docutils literal notranslate\"><span class=\"pre\">AUTH_PROFILE_MODULE</span></code>  ainsi que la méthode <code class=\"docutils literal notranslate\"><span class=\"pre\">get_profile()</span></code> du modèle <code class=\"docutils literal notranslate\"><span class=\"pre\">User</span></code> seront supprimés.</p></li>\n<li><p>La commande d’administration <code class=\"docutils literal notranslate\"><span class=\"pre\">cleanup</span></code> sera supprimée. Elle est remplacée par <code class=\"docutils literal notranslate\"><span class=\"pre\">clearsessions</span></code>.</p></li>\n<li><p>Le script <code class=\"docutils literal notranslate\"><span class=\"pre\">daily_cleanup.py</span></code> sera supprimé.</p></li>\n<li><p>Le paramètre nommé <code class=\"docutils literal notranslate\"><span class=\"pre\">depth</span></code> sera supprimé de <a class=\"reference internal\" href=\"/fr/3.2/ref/models/querysets/#django.db.models.query.QuerySet.select_related\" title=\"django.db.models.query.QuerySet.select_related\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">select_related()</span></code></a>.</p></li>\n<li><p>The undocumented <code class=\"docutils literal notranslate\"><span class=\"pre\">get_warnings_state()</span></code>/<code class=\"docutils literal notranslate\"><span class=\"pre\">restore_warnings_state()</span></code>\nfunctions from <a class=\"reference internal\" href=\"/fr/3.2/topics/testing/advanced/#module-django.test.utils\" title=\"django.test.utils: Helpers to write custom test runners.\"><code class=\"xref py py-mod docutils literal notranslate\"><span class=\"pre\">django.test.utils</span></code></a> and the <code class=\"docutils literal notranslate\"><span class=\"pre\">save_warnings_state()</span></code>/\n<code class=\"docutils literal notranslate\"><span class=\"pre\">restore_warnings_state()</span></code>\n<a class=\"reference internal\" href=\"/fr/3.2/topics/testing/tools/#django-testcase-subclasses\"><span class=\"std std-ref\">django.test.*TestCase</span></a> methods are\ndeprecated. Use the <a class=\"reference external\" href=\"https://docs.python.org/3/library/warnings.html#warnings.catch_warnings\" title=\"(disponible dans Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">warnings.catch_warnings</span></code></a> context manager\navailable starting with Python 2.6 instead.</p></li>\n<li><p>The undocumented <code class=\"docutils literal notranslate\"><span class=\"pre\">check_for_test_cookie</span></code> method in\n<a class=\"reference internal\" href=\"/fr/3.2/topics/auth/default/#django.contrib.auth.forms.AuthenticationForm\" title=\"django.contrib.auth.forms.AuthenticationForm\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">AuthenticationForm</span></code></a> will be removed\nfollowing an accelerated deprecation. Users subclassing this form should\nremove calls to this method, and instead ensure that their auth related views\nare CSRF protected, which ensures that cookies are enabled.</p></li>\n<li><p>The version of <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.auth.views.password_reset_confirm()</span></code> that\nsupports base36 encoded user IDs\n(<code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.auth.views.password_reset_confirm_uidb36</span></code>) will be\nremoved. If your site has been running Django 1.6 for more than\n<a class=\"reference internal\" href=\"/fr/3.2/ref/settings/#std-setting-PASSWORD_RESET_TIMEOUT_DAYS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">PASSWORD_RESET_TIMEOUT_DAYS</span></code></a>, this change will have no effect. If\nnot, then any password reset links generated before you upgrade to Django 1.7\nwon’t work after the upgrade.</p></li>\n<li><p>La classe mixin <code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.encoding.StrAndUnicode</span></code> sera supprimée.</p></li>\n</ul>\n</section>\n<section id=\"deprecation-removed-in-1-6\">\n<span id=\"id11\"></span><h2>1.6<a class=\"heading-anchor\" href=\"#deprecation-removed-in-1-6\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Consultez les <a class=\"reference internal\" href=\"/fr/3.2/releases/1.4/#deprecated-features-1-4\"><span class=\"std std-ref\">notes de publication de Django 1.4</span></a> pour plus de détails sur ces changements.</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.databrowse</span></code> sera supprimée.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.localflavor</span></code> sera supprimée suite à une obsolescence accélérée.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.markup</span></code> sera supprimée suite à une obsolescence accélérée.</p></li>\n<li><p>Les modules de compatibilité <code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.copycompat</span></code> et <code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.hashcompat</span></code> de même que les fonctions <code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.itercompat.all</span></code> et <code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.itercompat.any</span></code> seront supprimées. Les versions intégrées à Python doivent être utilisées à la place.</p></li>\n<li><p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">csrf_response_exempt</span></code> and <code class=\"docutils literal notranslate\"><span class=\"pre\">csrf_view_exempt</span></code> decorators will\nbe removed. Since 1.4 <code class=\"docutils literal notranslate\"><span class=\"pre\">csrf_response_exempt</span></code> has been a no-op (it\nreturns the same function), and <code class=\"docutils literal notranslate\"><span class=\"pre\">csrf_view_exempt</span></code> has been a\nsynonym for <code class=\"docutils literal notranslate\"><span class=\"pre\">django.views.decorators.csrf.csrf_exempt</span></code>, which should\nbe used to replace it.</p></li>\n<li><p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">django.core.cache.backends.memcached.CacheClass</span></code> backend\nwas split into two in Django 1.3 in order to introduce support for\nPyLibMC. The historical <code class=\"docutils literal notranslate\"><span class=\"pre\">CacheClass</span></code> will be removed in favor of\n<code class=\"docutils literal notranslate\"><span class=\"pre\">django.core.cache.backends.memcached.MemcachedCache</span></code>.</p></li>\n<li><p>The UK-prefixed objects of <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.localflavor.uk</span></code> will only\nbe accessible through their GB-prefixed names (GB is the correct\nISO 3166 code for United Kingdom).</p></li>\n<li><p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">IGNORABLE_404_STARTS</span></code> and <code class=\"docutils literal notranslate\"><span class=\"pre\">IGNORABLE_404_ENDS</span></code> settings have been\nsuperseded by <a class=\"reference internal\" href=\"/fr/3.2/ref/settings/#std-setting-IGNORABLE_404_URLS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">IGNORABLE_404_URLS</span></code></a> in the 1.4 release. They will be\nremoved.</p></li>\n<li><p>The form wizard has been refactored to use class-based views with pluggable\nbackends in 1.4. The previous implementation will be removed.</p></li>\n<li><p>Les anciennes manières d’appeler <a class=\"reference internal\" href=\"/fr/3.2/topics/cache/#django.views.decorators.cache.cache_page\" title=\"django.views.decorators.cache.cache_page\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">cache_page()</span></code></a> seront supprimées.</p></li>\n<li><p>The backward-compatibility shim to automatically add a debug-false\nfilter to the <code class=\"docutils literal notranslate\"><span class=\"pre\">'mail_admins'</span></code> logging handler will be removed. The\n<a class=\"reference internal\" href=\"/fr/3.2/ref/settings/#std-setting-LOGGING\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">LOGGING</span></code></a> setting should include this filter explicitly if\nit is desired.</p></li>\n<li><p>Les fonctions de troncature intégrées <code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.text.truncate_words()</span></code> et <code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.text.truncate_html_words()</span></code> seront supprimées en faveur de la nouvelle classe <code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.text.Truncator</span></code>.</p></li>\n<li><p>La classe <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.gis.geoip.GeoIP</span></code> a été déplacée dans <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.gis.geoip</span></code> dans la version 1.4 – le raccourci dans  <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.gis.utils</span></code> sera supprimé.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.conf.urls.defaults</span></code> sera supprimée. Les fonctions <code class=\"docutils literal notranslate\"><span class=\"pre\">include()</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">patterns()</span></code> et <code class=\"docutils literal notranslate\"><span class=\"pre\">url()</span></code>, ainsi que <a class=\"reference internal\" href=\"/fr/3.2/ref/urls/#django.conf.urls.handler404\" title=\"django.conf.urls.handler404\"><code class=\"xref py py-data docutils literal notranslate\"><span class=\"pre\">handler404</span></code></a> et <a class=\"reference internal\" href=\"/fr/3.2/ref/urls/#django.conf.urls.handler500\" title=\"django.conf.urls.handler500\"><code class=\"xref py py-data docutils literal notranslate\"><span class=\"pre\">handler500</span></code></a> sont dorénavant disponibles par <code class=\"docutils literal notranslate\"><span class=\"pre\">django.conf.urls</span></code>.</p></li>\n<li><p>Les fonctions <code class=\"docutils literal notranslate\"><span class=\"pre\">setup_environ()</span></code> et <code class=\"docutils literal notranslate\"><span class=\"pre\">execute_manager()</span></code> seront supprimées de <a class=\"reference internal\" href=\"/fr/3.2/howto/custom-management-commands/#module-django.core.management\" title=\"django.core.management\"><code class=\"xref py py-mod docutils literal notranslate\"><span class=\"pre\">django.core.management</span></code></a>. Cela signifie aussi que l’ancien (pré-1.4) style de fichier <code class=\"file docutils literal notranslate\"><span class=\"pre\">manage.py</span></code> ne fonctionnera plus.</p></li>\n<li><p>La définition des drapeaux <code class=\"docutils literal notranslate\"><span class=\"pre\">is_safe</span></code> et <code class=\"docutils literal notranslate\"><span class=\"pre\">needs_autoescape</span></code> en tant qu’attributs des fonctions de filtres de gabarits ne sera plus prise en charge.</p></li>\n<li><p>L’attribut <code class=\"docutils literal notranslate\"><span class=\"pre\">HttpRequest.raw_post_data</span></code> a été renommé en <code class=\"docutils literal notranslate\"><span class=\"pre\">HttpRequest.body</span></code> dans 1.4. La rétrocompatibilité sera supprimée – <code class=\"docutils literal notranslate\"><span class=\"pre\">HttpRequest.raw_post_data</span></code> ne sera plus disponible.</p></li>\n<li><p>La valeur du paramètre <code class=\"docutils literal notranslate\"><span class=\"pre\">post_url_continue</span></code> dans <code class=\"docutils literal notranslate\"><span class=\"pre\">ModelAdmin.response_add()</span></code> devra soit valoir <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> (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 <code class=\"docutils literal notranslate\"><span class=\"pre\">'../%s/'</span></code>, ne seront plus acceptées.</p></li>\n</ul>\n</section>\n<section id=\"deprecation-removed-in-1-5\">\n<span id=\"id12\"></span><h2>1.5<a class=\"heading-anchor\" href=\"#deprecation-removed-in-1-5\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Consultez les <a class=\"reference internal\" href=\"/fr/3.2/releases/1.3/#deprecated-features-1-3\"><span class=\"std std-ref\">notes de publication de Django 1.3</span></a> pour plus de détails sur ces changements.</p>\n<ul class=\"simple\">\n<li><p>Starting Django without a <a class=\"reference internal\" href=\"/fr/3.2/ref/settings/#std-setting-SECRET_KEY\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SECRET_KEY</span></code></a> will result in an exception\nrather than a <code class=\"docutils literal notranslate\"><span class=\"pre\">DeprecationWarning</span></code>. (This is accelerated from the usual\ndeprecation path; see the <a class=\"reference internal\" href=\"/fr/3.2/releases/1.4/\"><span class=\"doc\">Django 1.4 release notes</span></a>.)</p></li>\n<li><p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">mod_python</span></code> request handler will be removed. The <code class=\"docutils literal notranslate\"><span class=\"pre\">mod_wsgi</span></code>\nhandler should be used instead.</p></li>\n<li><p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">template</span></code> attribute on <code class=\"docutils literal notranslate\"><span class=\"pre\">django.test.client.Response</span></code>\nobjects returned by the <a class=\"reference internal\" href=\"/fr/3.2/topics/testing/tools/#test-client\"><span class=\"std std-ref\">test client</span></a> will be removed.\nThe <a class=\"reference internal\" href=\"/fr/3.2/topics/testing/tools/#django.test.Response.templates\" title=\"django.test.Response.templates\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">templates</span></code></a> attribute should be\nused instead.</p></li>\n<li><p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">django.test.simple.DjangoTestRunner</span></code> will be removed.\nInstead use a <code class=\"docutils literal notranslate\"><span class=\"pre\">unittest</span></code>-native class. The features of the\n<code class=\"docutils literal notranslate\"><span class=\"pre\">django.test.simple.DjangoTestRunner</span></code> (including fail-fast and\nCtrl-C test termination) can be provided by <a class=\"reference external\" href=\"https://docs.python.org/3/library/unittest.html#unittest.TextTestRunner\" title=\"(disponible dans Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">unittest.TextTestRunner</span></code></a>.</p></li>\n<li><p>The undocumented function\n<code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.formtools.utils.security_hash</span></code> will be removed,\ninstead use <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.formtools.utils.form_hmac</span></code></p></li>\n<li><p>The function-based generic view modules will be removed in favor of their\nclass-based equivalents, outlined <a class=\"reference internal\" href=\"/fr/3.2/topics/class-based-views/\"><span class=\"doc\">here</span></a>.</p></li>\n<li><p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">django.core.servers.basehttp.AdminMediaHandler</span></code> will be\nremoved.  In its place use\n<code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.staticfiles.handlers.StaticFilesHandler</span></code>.</p></li>\n<li><p>The template tags library <code class=\"docutils literal notranslate\"><span class=\"pre\">adminmedia</span></code> and the template tag <code class=\"docutils literal notranslate\"><span class=\"pre\">{%</span>\n<span class=\"pre\">admin_media_prefix</span> <span class=\"pre\">%}</span></code> will be removed in favor of the generic static files\nhandling. (This is faster than the usual deprecation path; see the\n<a class=\"reference internal\" href=\"/fr/3.2/releases/1.4/\"><span class=\"doc\">Django 1.4 release notes</span></a>.)</p></li>\n<li><p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">url</span></code> and <code class=\"docutils literal notranslate\"><span class=\"pre\">ssi</span></code> template tags will be modified so that the first\nargument to each tag is a template variable, not an implied string. In 1.4,\nthis behavior is provided by a version of the tag in the <code class=\"docutils literal notranslate\"><span class=\"pre\">future</span></code> template\ntag library.</p></li>\n<li><p>Les commandes d’administration <code class=\"docutils literal notranslate\"><span class=\"pre\">reset</span></code> et <code class=\"docutils literal notranslate\"><span class=\"pre\">sqlreset</span></code> seront supprimées.</p></li>\n<li><p>Authentication backends will need to support an inactive user\nbeing passed to all methods dealing with permissions.\nThe <code class=\"docutils literal notranslate\"><span class=\"pre\">supports_inactive_user</span></code> attribute will no longer be checked\nand can be removed from custom backends.</p></li>\n<li><p><a class=\"reference internal\" href=\"/fr/3.2/ref/contrib/gis/geos/#django.contrib.gis.geos.GEOSGeometry.transform\" title=\"django.contrib.gis.geos.GEOSGeometry.transform\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">transform()</span></code></a> will raise\na <a class=\"reference internal\" href=\"/fr/3.2/ref/contrib/gis/geos/#django.contrib.gis.geos.GEOSException\" title=\"django.contrib.gis.geos.GEOSException\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">GEOSException</span></code></a> when called\non a geometry with no SRID value.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.http.CompatCookie</span></code> will be removed in favor of\n<code class=\"docutils literal notranslate\"><span class=\"pre\">django.http.SimpleCookie</span></code>.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.core.context_processors.PermWrapper</span></code> and\n<code class=\"docutils literal notranslate\"><span class=\"pre\">django.core.context_processors.PermLookupDict</span></code> will be removed in\nfavor of the corresponding\n<code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.auth.context_processors.PermWrapper</span></code> and\n<code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.auth.context_processors.PermLookupDict</span></code>, respectively.</p></li>\n<li><p>The <a class=\"reference internal\" href=\"/fr/3.2/ref/settings/#std-setting-MEDIA_URL\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">MEDIA_URL</span></code></a> or <a class=\"reference internal\" href=\"/fr/3.2/ref/settings/#std-setting-STATIC_URL\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">STATIC_URL</span></code></a> settings will be\nrequired to end with a trailing slash to ensure there is a consistent\nway to combine paths in templates.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.db.models.fields.URLField.verify_exists</span></code> will be removed. The\nfeature was deprecated in 1.3.1 due to intractable security and\nperformance issues and will follow a slightly accelerated deprecation\ntimeframe.</p></li>\n<li><p>Translations located under the so-called <em>project path</em> will be ignored during\nthe translation building process performed at runtime. The\n<a class=\"reference internal\" href=\"/fr/3.2/ref/settings/#std-setting-LOCALE_PATHS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">LOCALE_PATHS</span></code></a> setting can be used for the same task by including the\nfilesystem path to a <code class=\"docutils literal notranslate\"><span class=\"pre\">locale</span></code> directory containing non-app-specific\ntranslations in its value.</p></li>\n<li><p>The Markup contrib app will no longer support versions of Python-Markdown\nlibrary earlier than 2.1. An accelerated timeline was used as this was\na security related deprecation.</p></li>\n<li><p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">CACHE_BACKEND</span></code> setting will be removed. The cache backend(s) should be\nspecified in the <a class=\"reference internal\" href=\"/fr/3.2/ref/settings/#std-setting-CACHES\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">CACHES</span></code></a> setting.</p></li>\n</ul>\n</section>\n<section id=\"deprecation-removed-in-1-4\">\n<span id=\"id13\"></span><h2>1.4<a class=\"heading-anchor\" href=\"#deprecation-removed-in-1-4\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Consultez les <a class=\"reference internal\" href=\"/fr/3.2/releases/1.2/#deprecated-features-1-2\"><span class=\"std std-ref\">notes de publication de Django 1.2</span></a> pour plus de détails sur ces changements.</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">CsrfResponseMiddleware</span></code> and <code class=\"docutils literal notranslate\"><span class=\"pre\">CsrfMiddleware</span></code> will be removed.  Use\nthe <code class=\"docutils literal notranslate\"><span class=\"pre\">{%</span> <span class=\"pre\">csrf_token</span> <span class=\"pre\">%}</span></code> template tag inside forms to enable CSRF\nprotection. <code class=\"docutils literal notranslate\"><span class=\"pre\">CsrfViewMiddleware</span></code> remains and is enabled by default.</p></li>\n<li><p>Les anciennes importations de fonctionnalité CSRF (<code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.csrf.*</span></code>), qui sont passées dans le cœur Django dans la version 1.2 seront supprimées.</p></li>\n<li><p>Le module <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.gis.db.backend</span></code> sera supprimé en faveur des moteurs spécifiques.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">SMTPConnection</span></code> sera supprimée en faveur d’une API générique de moteur de courriels.</p></li>\n<li><p>Les fonctions de génération SQL plusieurs-à-plusieurs des moteurs de base de données seront supprimées.</p></li>\n<li><p>La possibilité d’utiliser la famille de réglages de premier niveau <code class=\"docutils literal notranslate\"><span class=\"pre\">DATABASE_*</span></code> pour définir les connexions de base de données sera supprimée.</p></li>\n<li><p>The ability to use shorthand notation to specify a database backend\n(i.e., <code class=\"docutils literal notranslate\"><span class=\"pre\">sqlite3</span></code> instead of <code class=\"docutils literal notranslate\"><span class=\"pre\">django.db.backends.sqlite3</span></code>) will be\nremoved.</p></li>\n<li><p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">get_db_prep_save</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">get_db_prep_value</span></code> and\n<code class=\"docutils literal notranslate\"><span class=\"pre\">get_db_prep_lookup</span></code> methods will have to support multiple databases.</p></li>\n<li><p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">Message</span></code> model (in <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.auth</span></code>), its related\nmanager in the <code class=\"docutils literal notranslate\"><span class=\"pre\">User</span></code> model (<code class=\"docutils literal notranslate\"><span class=\"pre\">user.message_set</span></code>), and the\nassociated methods (<code class=\"docutils literal notranslate\"><span class=\"pre\">user.message_set.create()</span></code> and\n<code class=\"docutils literal notranslate\"><span class=\"pre\">user.get_and_delete_messages()</span></code>), will be removed.  The\n<a class=\"reference internal\" href=\"/fr/3.2/ref/contrib/messages/\"><span class=\"doc\">messages framework</span></a> should be used\ninstead. The related <code class=\"docutils literal notranslate\"><span class=\"pre\">messages</span></code> variable returned by the\nauth context processor will also be removed. Note that this\nmeans that the admin application will depend on the messages\ncontext processor.</p></li>\n<li><p>Authentication backends will need to support the <code class=\"docutils literal notranslate\"><span class=\"pre\">obj</span></code> parameter for\npermission checking. The <code class=\"docutils literal notranslate\"><span class=\"pre\">supports_object_permissions</span></code> attribute\nwill no longer be checked and can be removed from custom backends.</p></li>\n<li><p>Les moteurs d’authentification devront prendre en charge la classe <code class=\"docutils literal notranslate\"><span class=\"pre\">AnonymousUser</span></code> transmise à toutes les méthodes s’occupant de permissions. La variable <code class=\"docutils literal notranslate\"><span class=\"pre\">supports_anonymous_user</span></code> ne sera plus prise en compte et peut être supprimée de tout moteur personnalisé.</p></li>\n<li><p>The ability to specify a callable template loader rather than a\n<code class=\"docutils literal notranslate\"><span class=\"pre\">Loader</span></code> class will be removed, as will the <code class=\"docutils literal notranslate\"><span class=\"pre\">load_template_source</span></code>\nfunctions that are included with the built in template loaders for\nbackwards compatibility.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.translation.get_date_formats()</span></code> and\n<code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.translation.get_partial_date_formats()</span></code>. These functions\nwill be removed; use the locale-aware\n<code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.formats.get_format()</span></code> to get the appropriate formats.</p></li>\n<li><p>In <code class=\"docutils literal notranslate\"><span class=\"pre\">django.forms.fields</span></code>, the constants: <code class=\"docutils literal notranslate\"><span class=\"pre\">DEFAULT_DATE_INPUT_FORMATS</span></code>,\n<code class=\"docutils literal notranslate\"><span class=\"pre\">DEFAULT_TIME_INPUT_FORMATS</span></code> and\n<code class=\"docutils literal notranslate\"><span class=\"pre\">DEFAULT_DATETIME_INPUT_FORMATS</span></code> will be removed. Use\n<code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.formats.get_format()</span></code> to get the appropriate\nformats.</p></li>\n<li><p>La possibilité d’utiliser un lanceur de tests basé sur une fonction sera supprimée, de même que le lanceur de tests <code class=\"docutils literal notranslate\"><span class=\"pre\">django.test.simple.run_tests()</span></code>.</p></li>\n<li><p>La vue <code class=\"docutils literal notranslate\"><span class=\"pre\">views.feed()</span></code> et la classe <code class=\"docutils literal notranslate\"><span class=\"pre\">feeds.Feed</span></code> dans <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.syndication</span></code> seront supprimées. La vue basée sur une classe <code class=\"docutils literal notranslate\"><span class=\"pre\">views.Feed</span></code> doit être utilisée à la place.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.core.context_processors.auth</span></code>. Cette publication va supprimer l’ancienne méthode en faveur de la nouvelle méthode dans <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.auth.context_processors.auth</span></code>.</p></li>\n<li><p>Le moteur de base de données <code class=\"docutils literal notranslate\"><span class=\"pre\">postgresql</span></code> sera supprimé, utilisez à la place le moteur <code class=\"docutils literal notranslate\"><span class=\"pre\">postgresql_psycopg2</span></code>.</p></li>\n<li><p>Le code de langue <code class=\"docutils literal notranslate\"><span class=\"pre\">no</span></code> sera supprimé car il a été remplacé par le code de langue <code class=\"docutils literal notranslate\"><span class=\"pre\">nb</span></code>.</p></li>\n<li><p>Les moteurs d’authentification devront définir l’attribut booléen <code class=\"docutils literal notranslate\"><span class=\"pre\">supports_inactive_user</span></code> jusqu’à la version 1.5 qui considérera comme acquis le fait que tous les moteurs savent gérer les utilisateurs inactifs.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.db.models.fields.XMLField</span></code> will be removed. This was\ndeprecated as part of the 1.3 release. An accelerated deprecation\nschedule has been used because the field hasn’t performed any role\nbeyond that of a simple <code class=\"docutils literal notranslate\"><span class=\"pre\">TextField</span></code> since the removal of <code class=\"docutils literal notranslate\"><span class=\"pre\">oldforms</span></code>.\nAll uses of <code class=\"docutils literal notranslate\"><span class=\"pre\">XMLField</span></code> can be replaced with <code class=\"docutils literal notranslate\"><span class=\"pre\">TextField</span></code>.</p></li>\n<li><p>The undocumented <code class=\"docutils literal notranslate\"><span class=\"pre\">mixin</span></code> parameter to the <code class=\"docutils literal notranslate\"><span class=\"pre\">open()</span></code> method of\n<code class=\"docutils literal notranslate\"><span class=\"pre\">django.core.files.storage.Storage</span></code> (and subclasses) will be removed.</p></li>\n</ul>\n</section>\n<section id=\"deprecation-removed-in-1-3\">\n<span id=\"id14\"></span><h2>1.3<a class=\"heading-anchor\" href=\"#deprecation-removed-in-1-3\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Consultez les <a class=\"reference internal\" href=\"/fr/3.2/releases/1.1/#deprecated-features-1-1\"><span class=\"std std-ref\">notes de publication de Django 1.1</span></a> pour plus de détails sur ces changements.</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">AdminSite.root()</span></code>. Cette méthode de branchement des URL d’administration sera supprimée en faveur de l’inclusion de <code class=\"docutils literal notranslate\"><span class=\"pre\">admin.site.urls</span></code>.</p></li>\n<li><p>Les moteurs d’authentification doivent définir les attributs booléens <code class=\"docutils literal notranslate\"><span class=\"pre\">supports_object_permissions</span></code> et <code class=\"docutils literal notranslate\"><span class=\"pre\">supports_anonymous_user</span></code> jusqu’à la version 1.4, après quoi Django supposera que tous les moteurs savent gérer ces options.</p></li>\n</ul>\n</section>","rootId":"django-deprecation-timeline","toc":[{"title":"4.1","anchor":"deprecation-removed-in-4-1","children":[]},{"title":"4.0","anchor":"deprecation-removed-in-4-0","children":[]},{"title":"3.1","anchor":"deprecation-removed-in-3-1","children":[]},{"title":"3.0","anchor":"deprecation-removed-in-3-0","children":[]},{"title":"2.1","anchor":"deprecation-removed-in-2-1","children":[]},{"title":"2.0","anchor":"deprecation-removed-in-2-0","children":[]},{"title":"1.10","anchor":"deprecation-removed-in-1-10","children":[]},{"title":"1.9","anchor":"deprecation-removed-in-1-9","children":[]},{"title":"1.8","anchor":"deprecation-removed-in-1-8","children":[]},{"title":"1.7","anchor":"deprecation-removed-in-1-7","children":[]},{"title":"1.6","anchor":"deprecation-removed-in-1-6","children":[]},{"title":"1.5","anchor":"deprecation-removed-in-1-5","children":[]},{"title":"1.4","anchor":"deprecation-removed-in-1-4","children":[]},{"title":"1.3","anchor":"deprecation-removed-in-1-3","children":[]}],"breadcrumbs":[{"docname":"internals/index","title":"Fonctionnement interne du projet Django","url":"/fr/3.2/internals/"}],"prev":{"docname":"internals/release-process","title":"Processus de publication de Django","url":"/fr/3.2/internals/release-process/"},"next":{"docname":"internals/git","title":"Le dépôt de code source de Django","url":"/fr/3.2/internals/git/"},"formats":{"html":"/fr/3.2/internals/deprecation/","markdown":"/fr/3.2/internals/deprecation.md","json":"/fr/3.2/internals/deprecation.json"},"source":"https://github.com/django/django/blob/stable/3.2.x/docs/internals/deprecation.txt","official":"https://docs.djangoproject.com/fr/3.2/internals/deprecation/","inVersions":["6.1","6.0","5.2","5.1","5.0","4.2","4.1","4.0","3.2","3.1","3.0","2.2","2.1","2.0","1.11","1.10","1.9"],"inLocales":["en","zh-hans","fr","ja","id","it","pt-br","ko","es","el","pl"]}