Calendrier d’obsolescence de Django¶
Ce document présente les échéances où divers aspects de Django seront supprimés ou modifiés de manière non rétrocompatible, après une période d’obsolescence, en accord avec la politique d’obsolescence. Plus de détails sur ces différents éléments sont souvent disponibles dans les notes de publication les précédant de deux versions.
6.0¶
Consultez les notes de publication de Django 5.0 pour plus de détails sur ces changements.
Les producteurs de formulaires de transition
DjangoDivFormRenderer
etJinja2DivFormRenderer
seront supprimés.La prise en charge des arguments positionnels à
BaseConstraint
sera supprimée.request
sera obligatoire dans la signature des sous-classes deModelAdmin.lookup_allowed()
.django.db.models.sql.datastructures.Join
ne fera plus appel àget_joining_columns()
.La méthode
get_joining_columns()
deForeignObject
et deForeignObjectRel
sera supprimée.La méthode
ForeignObject.get_reverse_joining_columns()
sera supprimée.Le protocole par défaut de
forms.URLField
passera de"http"
à"https"
.La prise en charge de l’appel à
format_html()
sans transmettre d’arguments, nommés ou pas, sera supprimée.La prise en charge de
cx_Oracle
sera supprimée.BaseDatabaseOperations.field_cast_sql()
sera supprimée.L’alias
ChoicesMeta
dedjango.db.models.enums.ChoicesType
sera supprimé.La méthode
Prefetch.get_current_queryset()
sera supprimée.La méthode
get_prefetch_queryset()
des gestionnaires de liaison et des descripteurs sera supprimée.get_prefetcher()
etprefetch_related_objects()
ne se rabattront plus versget_prefetch_queryset()
.Le réglage temporaire
FORMS_URLFIELD_ASSUME_HTTPS
sera supprimé.
Consultez les notes de publication de Django 5.1 pour plus de détails sur ces changements.
Les méthodes
ModelAdmin.log_deletion()
etLogEntryManager.log_action()
seront supprimées.La fonction non documentée
django.utils.itercompat.is_iterable()
et le moduledjango.utils.itercompat
seront supprimés.La méthode
django.contrib.gis.geoip2.GeoIP2.coords()
sera supprimée.La méthode
django.contrib.gis.geoip2.GeoIP2.open()
sera supprimée.La prise en charge des arguments positionnels à
Model.save()
etModel.asave()
sera supprimée.La possibilité de définir la valeur
django.contrib.gis.gdal.OGRGeometry.coord_dim
sera supprimée.django.urls.register_converter()
ne permettra plus de surcharger des convertisseurs existants.Le paramètre nommé
check
deCheckConstraint
sera supprimé.L’attribut
OS_OPEN_FLAGS
deFileSystemStorage
sera supprimé.La méthode
get_cache_name()
deFieldCacheMixin
sera supprimée.
5.1¶
Consultez les notes de publication de Django 4.2 pour plus de détails sur ces changements.
La méthode
BaseUserManager.make_random_password()
sera supprimée.L’option de modèle
Meta.index_together
sera supprimée.Le filtre de gabarit
length_is
sera supprimé.Les classes django.contrib.auth.hashers.SHA1PasswordHasher`,
django.contrib.auth.hashers.UnsaltedSHA1PasswordHasher
etdjango.contrib.auth.hashers.UnsaltedMD5PasswordHasher
seront supprimées.Les modèles
django.contrib.postgres.fields.CICharField
,django.contrib.postgres.fields.CIEmailField
etdjango.contrib.postgres.fields.CITextField
seront supprimés. Des champs factices resteront pour assurer la compatibilité avec les migrations historiques.La classe mixin
django.contrib.postgres.fields.CIText
sera supprimée.Les attributs
map_width
etmap_height
deBaseGeometryWidget
seront supprimés.La méthode
SimpleTestCase.assertFormsetError()
sera supprimée.La méthode
TransactionTestCase.assertQuerysetEqual()
sera supprimée.La prise en charge des chaînes littérales encodées en JSON à
JSONField
et aux requêtes et expressions associées sera supprimée.La prise en charge des arguments positionnels à
Signer
etTimestampSigner
sera supprimée.Les réglages
DEFAULT_FILE_STORAGE
etSTATICFILES_STORAGE
seront supprimés.La fonction
django.core.files.storage.get_storage_class()
sera supprimée.
5.0¶
Consultez les notes de publication de Django 4.0 pour plus de détails sur ces changements.
Le réglage de test
SERIALIZE
sera supprimé.Le module non documenté
django.utils.baseconv
sera supprimé.Le module non documenté
django.utils.datetime_safe
sera supprimé.La valeur par défaut du réglage
USE_TZ
va changer deFalse
àTrue
.Le protocole par défaut pour les plans de site construits en dehors du contexte de la requête changera de
'http'
à'https'
.L’argument
extra_tests
deDiscoverRunner.build_suite()
et deDiscoverRunner.run_tests()
sera supprimé.Les agrégats
django.contrib.postgres.aggregates.ArrayAgg
,JSONBAgg
etStringAgg
renvoientNone
lorsqu’il n’y a aucun résultat, au lieu de[]
,[]
et''
, respectivement.Le réglage
USE_L10N
sera supprimé.Le réglage temporaire
USE_DEPRECATED_PYTZ
sera supprimé.La prise en charge des fuseaux horaires
pytz
sera supprimée.Le paramètre
is_dst
sera supprimé de :QuerySet.datetimes()
django.utils.timezone.make_aware()
django.db.models.functions.Trunc()
django.db.models.functions.TruncSecond()
django.db.models.functions.TruncMinute()
django.db.models.functions.TruncHour()
django.db.models.functions.TruncDay()
django.db.models.functions.TruncWeek()
django.db.models.functions.TruncMonth()
django.db.models.functions.TruncQuarter()
django.db.models.functions.TruncYear()
Les classes
django.contrib.gis.admin.GeoModelAdmin
etOSMGeoAdmin
seront supprimées.La méthode non documentée
BaseForm._html_output()
sera supprimée.La capacité de renvoyer une chaîne
str
au lieu d’une instanceSafeString
, lors de la production d’unErrorDict
ou d’ErrorList
sera supprimée.
Consultez les notes de publication de Django 4.1 pour plus de détails sur ces changements.
La méthode
SitemapIndexItem.__str__()
sera supprimée.Le réglage temporaire
CSRF_COOKIE_MASKED
sera supprimé.L’argument
name
dedjango.utils.functional.cached_property()
sera supprimé.L’argument
opclasses
dedjango.contrib.postgres.constraints.ExclusionConstraint
sera supprimé.La capacité non documentée de transmettre
errors=None
àSimpleTestCase.assertFormError()
etassertFormsetError()
sera supprimée.django.contrib.sessions.serializers.PickleSerializer
sera supprimé.L’utilisation de
QuerySet.iterator()
sur un jeu de requête qui précharge les objets liés sans fournir l’argumentchunk_size
ne sera plus autorisée.La transmission d’instances de modèles non enregistrées à des filtres de modèles liés ne sera plus autorisée.
created=True
sera obligatoire dans la signature des sous-classes deRemoteUserBackend.configure_user()
.La prise en charge de la déconnexion par des requêtes
GET
dans les vuesdjango.contrib.auth.views.LogoutView
etdjango.contrib.auth.views.logout_then_login()
sera supprimée.L’alias
django.utils.timezone.utc
versdatetime.timezone.utc
sera supprimé.La transmission d’un objet réponse et d’un nom de formulaire à
SimpleTestCase.assertFormError()
etassertFormsetError()
ne sera plus autorisée.Le composant
django.contrib.gis.admin.OpenLayersWidget
sera supprimé.django.contrib.auth.hashers.CryptPasswordHasher
sera supprimé.Les gabarits
"django/forms/default.html"
et"django/forms/formsets/default.html"
seront supprimés.La possibilité de passer
nulls_first=False
ounulls_last=False
aux méthodesExpression.asc()
etExpression.desc()
et à l’expressionOrderBy
sera supprimée.
4.1¶
Consultez les notes de publication de Django 3.2 pour plus de détails sur ces changements.
La prise en charge de l’attribution d’objets ne pouvant pas être copiés profondément par
copy.deepcopy()
à des attributs de classe dansTestCase.setUpTestData()
sera supprimée.BaseCommand.requires_system_checks
ne prendra plus en charge les valeurs booléennes.L’argument
whitelist
et l’attributdomain_whitelist
dedjango.core.validators.EmailValidator
seront supprimés.La variable de module
default_app_config
sera supprimée.TransactionTestCase.assertQuerysetEqual()
n’appellera plus automatiquementrepr()
sur un jeu de requête lors de comparaisons avec des valeurs textuelles.django.core.cache.backends.memcached.MemcachedCache
sera supprimée.La prise en charge du format des messages d’avant Django 3.2 utilisé par
django.contrib.messages.storage.cookie.CookieStorage
sera supprimée.
4.0¶
Consultez les notes de publication de Django 3.0 pour plus de détails sur ces changements.
django.utils.http.urlquote()
,urlquote_plus()
,urlunquote()
eturlunquote_plus()
seront supprimées.django.utils.encoding.force_text()
etsmart_text()
seront supprimées.django.utils.translation.ugettext()
,ugettext_lazy()
,ugettext_noop()
,ungettext()
etungettext_lazy()
seront supprimées.django.views.i18n.set_language()
ne définira plus la langue de l’utilisateur dansrequest.session
(clédjango.utils.translation.LANGUAGE_SESSION_KEY
).alias=None
sera obligatoire dans la signature des sous-classes dedjango.db.models.Expression.get_group_by_cols()
.django.utils.text.unescape_entities()
sera supprimée.django.utils.http.is_safe_url()
sera supprimée.
Consultez les notes de publication de Django 3.1 pour plus de détails sur ces changements.
Le réglage
PASSWORD_RESET_TIMEOUT_DAYS
sera supprimé.L’utilisation non documentée de l’expression de requête
isnull
avec des valeurs non booléennes dans la partie droite ne sera plus autorisée.La classe d’exception
django.db.models.query_utils.InvalidQuery
sera supprimée.Le point d’entrée
django-admin.py
sera supprimé.La méthode
HttpRequest.is_ajax()
sera supprimée.La prise en charge du format de codage des cookies d’avant Django 3.1 utilisé par
django.contrib.messages.storage.cookie.CookieStorage
sera supprimée.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.
La prise en charge du format de codage des sessions d’avant Django 3.1 sera supprimée.
La prise en charge des signatures
django.core.signing.Signer
d’avant Django 3.1 (utilisant l’algorithme de hachage SHA-1) sera supprimée.La prise en charge des signatures
django.core.signing.dumps()
d’avant Django 3.1 (utilisant l’algorithme de hachage SHA-1) sera supprimée dansdjango.core.signing.loads()
.La prise en charge des sessions d’utilisateurs d’avant Django 3.1 (utilisant l’algorithme de hachage SHA-1) sera supprimée.
L’argument
get_response
dedjango.utils.deprecation.MiddlewareMixin.__init__()
sera obligatoire et n’acceptera plusNone
.L’argument
providing_args
dedjango.dispatch.Signal
sera supprimé.Le paramètre
length
dedjango.utils.crypto.get_random_string()
sera obligatoire.Le message
list
deModelMultipleChoiceField
sera supprimé.La prise en charge de la transmission d’alias de colonnes bruts à
QuerySet.order_by()
sera supprimée.Le modèle
NullBooleanField
sera supprimé. Un champ factice restera pour des raisons de compatibilité avec les migrations historiques.django.conf.urls.url()
sera supprimée.Le modèle
django.contrib.postgres.fields.JSONField
sera supprimé. Un champ factice restera pour des raisons de compatibilité avec l’historique des migrations.django.contrib.postgres.forms.JSONField
,django.contrib.postgres.fields.jsonb.KeyTransform
etdjango.contrib.postgres.fields.jsonb.KeyTextTransform
seront supprimés.Les balises de gabarit
{% ifequal %}
et{% ifnotequal %}
seront supprimées.Le réglage temporaire
DEFAULT_HASHING_ALGORITHM
sera supprimé.
3.1¶
Consultez les notes de publication de Django 2.2 pour plus de détails sur ces changements.
django.utils.timezone.FixedOffset
sera supprimée.django.core.paginator.QuerySetPaginator
sera supprimée.L’attribut
Meta.ordering
des modèles n’affectera plus les requêtesGROUP BY
.django.contrib.postgres.fields.FloatRangeField
etdjango.contrib.postgres.forms.FloatRangeField
seront supprimés.Le réglage
FILE_CHARSET
sera supprimé.django.contrib.staticfiles.storage.CachedStaticFilesStorage
sera supprimée.RemoteUserBackend.configure_user()
exigerarequest
comme premier paramètre positionnel.La prise en charge de
SimpleTestCase.allow_database_queries
et deTransactionTestCase.multi_db
sera supprimée.
3.0¶
Consultez les notes de publication de Django 2.0 pour plus de détails sur ces changements.
Le module
django.db.backends.postgresql_psycopg2
sera supprimé.django.shortcuts.render_to_response()
sera supprimée.Le réglage
DEFAULT_CONTENT_TYPE
sera supprimé.HttpRequest.xreadlines()
sera supprimée.La prise en charge du paramètre
context
deField.from_db_value()
et deExpression.convert_value()
sera supprimée.Le paramètre nommé
field_name
deQuerySet.earliest()
et delatest()
sera supprimé.
Consultez les notes de publication de Django 2.1 pour plus de détails sur ces changements.
django.contrib.gis.db.models.functions.ForceRHR
sera supprimée.django.utils.http.cookie_date()
sera supprimée.Les bibliothèques de balises de gabarits
staticfiles
etadmin_static
seront supprimées.django.contrib.staticfiles.templatetags.static()
sera supprimée.La couche de compatibilité pour permettre à
InlineModelAdmin.has_add_permission()
d’être définie sans paramètreobj
sera supprimée.
2.1¶
Consultez les notes de publication de Django 1.11 pour plus de détails sur ces changements.
contrib.auth.views.login()
,logout()
,password_change()
,password_change_done()
,password_reset()
,password_reset_done()
,password_reset_confirm()
etpassword_reset_complete()
seront supprimées.Le paramètre
extra_context
decontrib.auth.views.logout_then_login()
sera supprimé.django.test.runner.setup_databases()
sera supprimée.django.utils.translation.string_concat()
sera supprimée.django.core.cache.backends.memcached.PyLibMCCache
ne prendra plus en charge la transmission des réglages de comportementpylibmc
comme attributs de premier niveau desOPTIONS
.Le paramètre
host
dedjango.utils.http.is_safe_url()
sera supprimé.Le masquage des exceptions produites lors du rendu de la balise de gabarit
{% include %}
sera supprimé.DatabaseIntrospection.get_indexes()
sera supprimée.La méthode
authenticate()
des moteurs d’authentification exigerarequest
comme premier paramètre positionnel.Le décorateur
django.db.models.permalink()
sera supprimé.Le réglage
USE_ETAGS
sera supprimé.CommonMiddleware
etdjango.utils.cache.patch_response_headers()
ne créeront plus d’ETags.L’attribut
Model._meta.has_auto_field
sera supprimé.La prise en charge de
url()
des drapeaux en ligne dans les groupes d’expressions régulières ((?i)
,(?L)
,(?m)
,(?s)
, and(?u)
) sera supprimée.La prise en charge des méthodes
Widget.render()
sans le paramètrerenderer
sera supprimée.
2.0¶
Consultez les notes de publication de Django 1.9 pour plus de détails sur ces changements.
Le paramètre
weak
dedjango.dispatch.signals.Signal.disconnect()
sera supprimé.django.db.backends.base.BaseDatabaseOperations.check_aggregate_support()
sera supprimée.Le paquet
django.forms.extras
sera supprimé.L’utilitaire
assignment_tag
sera supprimé.Le paramètre
host
deassertsRedirects
sera supprimé. La couche de compatibilité qui permet de considérer les URL absolues égales aux URL relatives lorsque le chemin est identique sera également supprimée.Field.rel
sera supprimé.L’attribut
Field.remote_field.to
sera supprimé.Le paramètre
on_delete
deForeignKey
etOneToOneField
deviendra obligatoire.django.db.models.fields.add_lazy_relation()
sera supprimée.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
cursor.execute()
.Le décorateur
django.contrib.auth.tests.utils.skipIfCustomUser()
sera supprimé.Les classes
GeoManager
etGeoQuerySet
seront supprimées.Le module
django.contrib.gis.geoip
sera supprimé.Le contrôle
supports_recursion
pour les chargeurs de gabarit sera supprimé de :django.template.engine.Engine.find_template()
django.template.loader_tags.ExtendsNode.find_template()
django.template.loaders.base.Loader.supports_recursion()
django.template.loaders.cached.Loader.supports_recursion()
Les méthodes de chargeur de gabarit
load_template()
etload_template_sources()
seront supprimées.Le paramètre
template_dirs
des chargeurs de gabarit sera supprimé de :django.template.loaders.base.Loader.get_template()
django.template.loaders.cached.Loader.cache_key()
django.template.loaders.cached.Loader.get_template()
django.template.loaders.cached.Loader.get_template_sources()
django.template.loaders.filesystem.Loader.get_template_sources()
La méthode
django.template.loaders.base.Loader.__call__()
sera supprimée.La prise en charge des vues d’erreur personnalisées avec un seul paramètre positionnel sera supprimée.
L’attribut
mime_type
dedjango.utils.feedgenerator.Atom1Feed
et dedjango.utils.feedgenerator.RssFeed
sera supprimé en faveur decontent_type
.Le paramètre
app_name
dedjango.conf.urls.include()
sera supprimé.La prise en charge de la transmission d’un tuple à 3 comme premier paramètre de
include()
sera supprimée.La prise en charge de la définition de l’espace de nom d’une instance d’URL sans espace de nom d’application sera supprimée.
Field._get_val_from_obj()
sera supprimée en faveur deField.value_from_object()
.django.template.loaders.eggs.Loader
sera supprimée.Le paramètre
current_app
decontrib.auth
sera supprimé.Le paramètre nommé
callable_obj
deSimpleTestCase.assertRaisesMessage()
sera supprimé.La prise en charge de l’attribut
allow_tags
des méthodesModelAdmin
sera supprimée.Le paramètre nommé
enclosure
deSyndicationFeed.add_item()
sera supprimé.Les alias
django.template.loader.LoaderOrigin
etdjango.template.base.StringOrigin
dedjango.template.base.Origin
seront supprimés.
Consultez les notes de publication de Django 1.10 pour plus de détails sur ces changements.
L’option
makemigrations --exit
sera supprimée.La prise en charge de l’attribution directe à une clé étrangère inversée ou à des relations plusieurs-à-plusieurs sera supprimée.
Les méthodes
get_srid()
etset_srid()
dedjango.contrib.gis.geos.GEOSGeometry
seront supprimées.Les méthodes
get_x()
,set_x()
,get_y()
,set_y()
,get_z()
etset_z()
dedjango.contrib.gis.geos.Point
seront supprimées.Les méthodes
get_coords()
etset_coords()
dedjango.contrib.gis.geos.Point
seront supprimées.La propriété
cascaded_union
dedjango.contrib.gis.geos.MultiPolygon
sera supprimée.django.utils.functional.allow_lazy()
sera supprimée.L’option
shell --plain
sera supprimée.Le module
django.core.urlresolvers
sera supprimé.Le modèle
CommaSeparatedIntegerField
sera supprimé. Un champ factice restera pour des raisons de compatibilité avec les migrations historiques.La prise en charge de la méthode de gabarit
Context.has_key()
sera supprimée.La prise en charge des méthodes
django.core.files.storage.Storage.accessed_time()
,created_time()
etmodified_time()
sera supprimée.Les expressions de requête utilisant le nom de modèle lorsque
Meta.default_related_name
est défini ne seront plus prises en charge.L’expression de requête
__search
et la méthodeDatabaseOperations.fulltext_search_sql()
seront supprimées.Le bout de code prenant en charge les classes personnalisées de gestionnaire de champs liés sans méthode
_apply_rel_filters()
sera supprimé.L’utilisation de
User.is_authenticated()
et deUser.is_anonymous()
sous forme de méthode ne sera plus prise en charge.L’attribut privé
virtual_fields
deModel._meta
sera supprimé.Les arguments nommés privés
virtual_only
dansField.contribute_to_class()
etvirtual
dansModel._meta.add_field()
seront supprimés.Les vues
javascript_catalog()
etjson_catalog()
seront supprimées.La fonction
django.contrib.gis.utils.precision_wkt()
sera supprimée.Dans l’héritage multitable, la promotion implicite d’un champ
OneToOneField
vers un lienparent_link
sera supprimée.La prise en charge de
Widget._format_value()
sera supprimée.Les méthodes
get_directory_name()
etget_filename()
deFileField
seront supprimées.La fonction
mark_for_escaping()
et les classes qu’elle utilise :EscapeData
,EscapeBytes
,EscapeText
,EscapeString
etEscapeUnicode
seront supprimées.Le filtre
escape
sera modifié pour utiliserdjango.utils.html.conditional_escape()
.Manager.use_for_related_fields
sera supprimé.L’héritage de
Manager
des modèles va suivre les règles d’héritage MRO et l’attributMeta.manager_inheritance_from_future
qui active ce comportement sera supprimé.La prise en charge de l’ancien style d’intergiciel utilisant
settings.MIDDLEWARE_CLASSES
sera supprimée.
1.10¶
Consultez les notes de publication de Django 1.8 pour plus de détails sur ces changements.
La prise en charge de l’appel direct à
SQLCompiler
comme alias pour appeler sa méthodequote_name_unless_alias
sera supprimée.Les balises de gabarit
cycle
etfirstof
seront supprimées de la bibliothèque de balises de gabaritfuture
(utilisées durant la période d’obsolescence 1.6/1.7).django.conf.urls.patterns()
sera supprimée.La prise en charge de l’argument
prefix
dedjango.conf.urls.i18n.i18n_patterns()
sera supprimée.SimpleTestCase.urls
sera supprimé.L’utilisation d’un nombre incorrect de valeurs dépaquetées dans la balise de gabarit
for
produira une exception et n’échouera plus de manière silencieuse.La possibilité de résoudre des URL avec un chemin Python pointé sera supprimée.
La possibilité d’utiliser un chemin Python pointé pour les réglages
LOGIN_URL
etLOGIN_REDIRECT_URL
sera supprimée.La prise en charge de
optparse
pour les commandes d’administration personnalisées sera supprimée (remplacée parargparse
).La classe
django.core.management.NoArgsCommand
sera supprimée. UtilisezBaseCommand
à la place, qui n’accepte aucun argument par défaut.Le module
django.core.context_processors
sera supprimé.Le module
djangodb.models.sql.aggregates
sera supprimé.Le module
django.contrib.gis.db.models.sql.aggregates
sera supprimé.Les méthodes et propriétés suivantes de
django.db.sql.query.Query
seront supprimées :Propriétés :
aggregates
etaggregate_select
Méthodes :
add_aggregate
,set_aggregate_mask
etappend_aggregate_mask
.
django.template.resolve_variable
sera supprimée.Les API privées suivantes seront supprimées de
django.db.models.options.Options
(Model._meta
) :get_field_by_name()
get_all_field_names()
get_fields_with_model()
get_concrete_fields_with_model()
get_m2m_with_model()
get_all_related_objects()
get_all_related_objects_with_model()
get_all_related_many_to_many_objects()
get_all_related_m2m_objects_with_model()
Le paramètre
error_message
dedjango.forms.RegexField
sera supprimé.Le filtre
unordered_list
ne prendra plus en charge les listes de l’ancien style.La prise en charge des paramètres de
view
sous forme de texte dansurl()
sera supprimée.La couche de rétrocompatibilité pour renommer
django.forms.Form._has_changed()
enhas_changed()
sera supprimée.Le filtre de gabarit
removetags
sera supprimé.Les fonctions
remove_tags()
etstrip_entities()
dedjango.utils.html
seront supprimées.Le paramètre
is_admin_site
dedjango.contrib.auth.views.password_reset()
sera supprimé.django.db.models.field.subclassing.SubfieldBase
sera supprimée.django.utils.checksums
sera supprimée ; cette fonctionnalité est incluse dansdjango-localflavor
1.1+.L’attribut
original_content_type_id
dedjango.contrib.admin.helpers.InlineAdminForm
sera supprimé.La couche de compatibilité pour permettre à
FormMixin.get_form()
d’être définie sans valeur par défaut pour son paramètreform_class
sera supprimée.Les réglages suivants seront supprimés :
ALLOWED_INCLUDE_ROOTS
TEMPLATE_CONTEXT_PROCESSORS
TEMPLATE_DEBUG
TEMPLATE_DIRS
TEMPLATE_LOADERS
TEMPLATE_STRING_IF_INVALID
L’alias de rétrocompatibilité
django.template.loader.BaseLoader
sera supprimé.Les objets de gabarit Django renvoyés par
get_template()
etselect_template()
n’accepteront plus deContext
dans leur méthoderender()
.Les API de réponse de gabarit forceront l’usage de
dict
et d’objets de gabarit dépendants du moteur au lieu de respectivementContext
et deTemplate
.Le paramètre
current_app
sera supprimé des fonction et classes suivantes :django.shortcuts.render()
django.template.Context()
django.template.RequestContext()
django.template.response.TemplateResponse()
Les paramètres
dictionary
etcontext_instance
seront supprimés des fonctions suivantes :django.shortcuts.render()
django.shortcuts.render_to_response()
django.template.loader.render_to_string()
Le paramètre
dirs
sera supprimé des fonctions suivantes :django.template.loader.get_template()
django.template.loader.select_template()
django.shortcuts.render()
django.shortcuts.render_to_response()
La vérification des sessions sera active sans tenir compte de la présence de
'django.contrib.auth.middleware.SessionAuthenticationMiddleware'
dansMIDDLEWARE_CLASSES
.L’attribut privé
django.db.models.Field.related
sera supprimé.L’option
--list
de la commande d’administrationmigrate
sera supprimée.La balise de gabarit
ssi
sera supprimée.La prise en charge de l’opérateur de comparaison
=
sera supprimée dans la balise de gabaritif
.Les bouts de code de rétrocompatibilité pour permettre de définir
Storage.get_available_name()
etStorage.save()
sans argumentmax_length
seront supprimés.La prise en charge de l’ancienne syntaxe
%(<foo>)s
dansModelFormMixin.success_url
sera supprimée.Les méthodes d’agrégation
GeoQuerySet
collect()
,extent()
,extent3d()
,make_line()
etunionagg()
seront supprimées.La possibilité de définir
ContentType.name
lors de la création d’une instance de type de contenu sera supprimée.La prise en charge de l’ancienne signature de
allow_migrate
sera supprimée. Elle a changé deallow_migrate(self, db, model)
àallow_migrate(self, db, app_label, model_name=None, **hints)
.La prise en charge de la syntaxe de
{% cycle %}
utilisant les arguments séparés par des virgules sera supprimée.L’avertissement que donne
Signer
lorsqu’elle reçoit un séparateur non valable deviendra une exception.
1.9¶
Consultez les notes de publication de Django 1.7 pour plus de détails sur ces changements.
django.utils.dictconfig
sera supprimé.django.utils.importlib
sera supprimé.django.utils.tzinfo
sera supprimé.django.utils.unittest
sera supprimé.La commande
syncdb
sera supprimée.django.db.models.signals.pre_syncdb
etdjango.db.models.signals.post_syncdb
seront supprimés.allow_syncdb
sur les routeurs de base de données ne deviendra plus automatiquementallow_migrate
.La synchronisation automatique des applications sans migrations sera supprimée. Les migrations deviendront obligatoires pour toutes les applications sauf quand l’option
--run-syncdb
est transmise à la commandemigrate
.Les commandes d’administration SQL pour les applications sans migrations
sql
,sqlall
,sqlclear
,sqldropindexes
etsqlindexes
seront supprimées.La prise en charge du chargement automatique des instantanés
initial_data
et des données SQL initiales sera supprimée.Tous les modèles devront être définis dans une application installée ou déclarer une option
app_label
explicite. De plus, il ne sera plus possible de les importer avant que leur application soit chargée. En particulier, il ne sera plus possible d’importer des modèles dans le paquet racine de leur application.Les champ de modèle et de formulaire
IPAddressField
seront supprimés. Un champ de substitution restera pour des raisons de compatibilité avec l’historique des migrations.AppCommand.handle_app()
ne sera plus prise en charge.RequestSite
etget_current_site()
ne pourront plus être importés à partir dedjango.contrib.sites.models
.La prise en charge de FastCGI par la commande d’administration
runfcgi
sera supprimée. Veuillez déployer votre projet avec WSGI.django.utils.datastructures.SortedDict
sera supprimé. Utilisez à la placecollections.OrderedDict
de la bibliothèque Python standard.ModelAdmin.declared_fieldsets
sera supprimé.Les instances de fichier
util.py
dans la base de code de Django ont été renommées enutils.py
dans un effort d’unification de toutes les références àutil
etutils
. Les modules qui garantissent une rétrocompatibilité seront supprimés.django.contrib.admin.util
django.contrib.gis.db.backends.util
django.db.backends.util
django.forms.util
ModelAdmin.get_formsets
sera supprimé.Le code de rétrocompatibilité permettant le renommage de la méthode
BaseMemcachedCache._get_memcache_timeout()
enget_backend_timeout()
sera supprimé.Les options
--natural
et-n
dedumpdata
seront supprimées.Le paramètre
use_natural_keys
deserializers.serialize()
sera supprimé.L’API privée
django.forms.forms.get_declared_fields()
sera supprimée.La possibilité d’utiliser un composant
SplitDateTimeWidget
avecDateTimeField
sera supprimée.La propriété
WSGIRequest.REQUEST
sera supprimée.La classe
django.utils.datastructures.MergeDict
sera supprimée.Les codes de langues
zh-cn
etzh-tw
seront supprimés et remplacés respectivement par les codes de langueszh-hans
etzh-hant
.La fonction interne
django.utils.functional.memoize
sera supprimée.django.core.cache.get_cache
sera supprimée. Ajoutez plutôt les lignes adéquates dansCACHES
et utilisezdjango.core.cache.caches
.django.db.models.loading
sera supprimée.La transmission de paramètres exécutables aux jeux de requête ne sera plus possible.
BaseCommand.requires_model_validation
sera supprimé en faveur derequires_system_checks
.Les attributs
ModelAdmin.validator_class
etdefault_validator_class
seront supprimés.ModelAdmin.validate()
sera supprimée.django.db.backends.DatabaseValidation.validate_field
sera supprimée en faveur de la méthodecheck_field
.La commande d’administration
validate
sera supprimée.django.utils.module_loading.import_by_path
sera supprimé en faveur dedjango.utils.module_loading.import_string
.Les balises de gabarit
ssi
eturl
seront supprimées de la bibliothèque de balises de gabaritfuture
(utilisées durant la période d’obsolescence 1.3/1.4).django.utils.text.javascript_quote
sera supprimé.Les réglages de test de base de données comme entrées indépendantes dans les réglages de base de données, préfixés par
TEST_
ne seront plus pris en charge.L’option
cache_choices
deModelChoiceField
etModelMultipleChoiceField
sera supprimée.La valeur par défaut de l’attribut
RedirectView.permanent
sera modifié deTrue
àFalse
.django.contrib.sitemaps.FlatPageSitemap
sera supprimée en faveur dedjango.contrib.flatpages.sitemaps.FlatPageSitemap
.L’API privée
django.test.utils.TestTemplateLoader
sera supprimée.Le module
django.contrib.contenttypes.generic
sera supprimé.Les API privées
django.db.models.sql.where.WhereNode.make_atom()
etdjango.db.models.sql.where.Constraint
seront supprimées.
1.8¶
Consultez les notes de publication de Django 1.6 pour plus de détails sur ces changements.
django.contrib.comments
sera supprimé.Les API de gestion des transactions suivantes seront supprimées :
TransactionMiddleware
,les décorateurs et gestionnaires de contexte
autocommit
,commit_on_success
etcommit_manually
, définis dansdjango.db.transaction
,les fonctions
commit_unless_managed
etrollback_unless_managed
, aussi définies dansdjango.db.transaction
,le réglage
TRANSACTIONS_MANAGED
.
Les balises de gabarit
cycle
etfirstof
vont automatiquement échapper leurs paramètres. Dans 1.6 et 1.7, ce comportement est offert par les versions de ces balises dans la bibliothèque de balises de gabaritfuture
.Le réglage
SEND_BROKEN_LINK_EMAILS
sera supprimé. Ajoutez plutôt l’intergicieldjango.middleware.common.BrokenLinkEmailsMiddleware
à votre réglageMIDDLEWARE_CLASSES
.django.middleware.doc.XViewMiddleware
sera supprimé. Utilisezdjango.contrib.admindocs.middleware.XViewMiddleware
à la place.Model._meta.module_name
a été renommé enmodel_name
.Suppression du code de rétrocompatibilité introduit pour renommer
get_query_set
et les méthodes similaires de jeux de requêtes. Cela affecte les classes suivantes :BaseModelAdmin
,ChangeList
,BaseCommentNode
,GenericForeignKey
,Manager
,SingleRelatedObjectDescriptor
etReverseSingleRelatedObjectDescriptor
.Suppression du code de rétrocompatibilité introduit pour renommer les attributs
ChangeList.root_query_set
etChangeList.query_set
.django.views.defaults.shortcut
sera supprimée, dans le cadre de l’objectif de supprimer toutes les références àdjango.contrib
dans le code du cœur de Django. Utilisezdjango.contrib.contenttypes.views.shortcut
à la place.django.conf.urls.shortcut
sera aussi supprimée.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.
Les API privées suivantes seront supprimées :
django.db.backend
django.db.close_connection()
django.db.backends.creation.BaseDatabaseCreation.set_autocommit()
django.db.transaction.is_managed()
django.db.transaction.managed()
django.forms.widgets.RadioInput
sera supprimé en faveur dedjango.forms.widgets.RadioChoiceInput
.Le module
django.test.simple
et la classedjango.test.simple.DjangoTestSuiteRunner
seront supprimés. Utilisezdjango.test.runner.DiscoverRunner
à la place.Le module
django.test._doctest
sera supprimé. Utilisez à la place le module doctest de la bibliothèque Python standard.Le réglage
CACHE_MIDDLEWARE_ANONYMOUS_ONLY
sera supprimé.L’utilisation de la chaîne codée en dur Maintenir «Contrôle» ou «Commande» sur Mac pour sélectionner plusieurs pour remplacer ou ajouter au contenu
help_text
des formulaires pour les champs de modèle ManyToMany ne sera plus appliquée par Django, ni pour les modèles, ni pour les formulaires.Les méthodes
Model._meta.get_(add|change|delete)_permission
seront supprimées.La clé de session
django_language
ne sera plus lue comme elle l’était par rétrocompatibilité.Les plans de site géographiques seront supprimés (
django.contrib.gis.sitemaps.views.index
etdjango.contrib.gis.sitemaps.views.sitemap
).django.utils.html.fix_ampersands
, le filtre de gabaritfix_ampersands
etdjango.utils.html.clean_html
seront supprimés selon une obsolescence accélérée.
1.7¶
Consultez les notes de publication de Django 1.5 pour plus de détails sur ces changements.
Le module
django.utils.simplejson
sera supprimé. La bibliothèque standard fournitjson
qui doit être utilisé à la place.La fonction
django.utils.itercompat.product
sera supprimée. La version intégrée à Python doit être utilisée à la place.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.
L’argument
mimetype
des méthodes__init__
de class:~django.http.HttpResponse,SimpleTemplateResponse
etTemplateResponse
sera supprimé. Il faut utilisercontent_type
à la place. Cela s’applique aussi au raccourcirender_to_response()
et aux vues des plans de sites,index()
etsitemap()
.Lorsque
HttpResponse
est instanciée avec un itérateur ou lorsquecontent
est défini à un itérateur, ce dernier sera immédiatement consommé.Le réglage
AUTH_PROFILE_MODULE
ainsi que la méthodeget_profile()
du modèleUser
seront supprimés.La commande d’administration
cleanup
sera supprimée. Elle est remplacée parclearsessions
.Le script
daily_cleanup.py
sera supprimé.Le paramètre nommé
depth
sera supprimé deselect_related()
.Les fonctions non documentées
get_warnings_state()
/restore_warnings_state()
dedjango.test.utils
et les méthodes django.test.*TestCasesave_warnings_state()
/restore_warnings_state()
sont obsolètes. Utilisez plutôt le gestionnaire de contextewarnings.catch_warnings
disponible à partir de Python 2.6.La méthode non documentée
check_for_test_cookie
dansAuthenticationForm
sera supprimée à la suite d’une obsolescence accélérée. Les personnes héritant de ce formulaire doivent supprimer les appels à cette méthode et s’assurer à la place que leurs vues liées à l’authentification soient protégées par CSRF, ce qui garantit que les cookies sont activés.La version de
django.contrib.auth.views.password_reset_confirm()
qui prend en charge les identifiants d’utilisateur codés en base36 (django.contrib.auth.views.password_reset_confirm_uidb36`) sera supprimée. Si votre site a fonctionné sous Django 1.6 pendant plus dePASSWORD_RESET_TIMEOUT_DAYS
jours, ce changement n’aura aucun effet. Sinon, tout lien de réinitialisation de mot de passe généré avant de mettre à jour à Django 1.7 ne fonctionnera plus après la mise à jour.La classe mixin
django.utils.encoding.StrAndUnicode
sera supprimée.
1.6¶
Consultez les notes de publication de Django 1.4 pour plus de détails sur ces changements.
django.contrib.databrowse
sera supprimée.django.contrib.localflavor
sera supprimée suite à une obsolescence accélérée.django.contrib.markup
sera supprimée suite à une obsolescence accélérée.Les modules de compatibilité
django.utils.copycompat
etdjango.utils.hashcompat
de même que les fonctionsdjango.utils.itercompat.all
etdjango.utils.itercompat.any
seront supprimées. Les versions intégrées à Python doivent être utilisées à la place.Les décorateurs
csrf_response_exempt
etcsrf_view_exempt
seront supprimés. Depuis la version 1.4,csrf_response_exempt
était sans effet (elle renvoie la même fonction) etcsrf_view_exempt
était un synonyme dedjango.views.decorators.csrf.csrf_exempt
, qui doit être utilisée pour la remplacer.Le moteur
django.core.cache.backends.memcached.CacheClass
a été séparé en deux dans Django 1.3 afin d’ajouter la prise en charge de PyLibMC. La classe historiqueCacheClass
sera supprimée en faveur dedjango.core.cache.backends.memcached.MemcachedCache
.Les objets avec préfixe UK de
django.contrib.localflavor.uk
ne seront plus disponibles que sous leur nom préfixé avec GB (GB est le code ISO 3166 correct pour le Royaume-Uni).Les réglages
IGNORABLE_404_STARTS
etIGNORABLE_404_ENDS
ont été remplacés parIGNORABLE_404_URLS
dans la version 1.4. Ils seront supprimés.L’assistant de formulaire a été retravaillé pour utiliser les vues basées sur les classes avec des moteurs interchangeables dans 1.4. L’implémentation précédente sera supprimée.
Les anciennes manières d’appeler
cache_page()
seront supprimées.Le code de rétrocompatibilité pour automatiquement ajouter un filtre debug à faux dans le gestionnaire de journalisation
'mail_admins'
sera supprimé. Le réglageLOGGING
devrait inclure ce filtre explicitement s’il est souhaité.Les fonctions de troncature intégrées
django.utils.text.truncate_words()
etdjango.utils.text.truncate_html_words()
seront supprimées en faveur de la nouvelle classedjango.utils.text.Truncator
.La classe
django.contrib.gis.geoip.GeoIP
a été déplacée dansdjango.contrib.gis.geoip
dans la version 1.4 – le raccourci dansdjango.contrib.gis.utils
sera supprimé.django.conf.urls.defaults
sera supprimée. Les fonctionsinclude()
,patterns()
eturl()
, ainsi quehandler404
ethandler500
sont dorénavant disponibles pardjango.conf.urls
.Les fonctions
setup_environ()
etexecute_manager()
seront supprimées dedjango.core.management
. Cela signifie aussi que l’ancien (pré-1.4) style de fichiermanage.py
ne fonctionnera plus.La définition des drapeaux
is_safe
etneeds_autoescape
en tant qu’attributs des fonctions de filtres de gabarits ne sera plus prise en charge.L’attribut
HttpRequest.raw_post_data
a été renommé enHttpRequest.body
dans 1.4. La rétrocompatibilité sera supprimée –HttpRequest.raw_post_data
ne sera plus disponible.La valeur du paramètre
post_url_continue
dansModelAdmin.response_add()
devra soit valoirNone
(pour rediriger vers la page d’édition de l’objet nouvellement créé) soit contenir une URL préformatée. Les substitutions de chaînes, telles que la valeur par défaut précédente'../%s/'
, ne seront plus acceptées.
1.5¶
Consultez les notes de publication de Django 1.3 pour plus de détails sur ces changements.
Le lancement de Django sans
SECRET_KEY
produira une exception au lieu d’un avertissementDeprecationWarning
(le procédé d’obsolescence a été accéléré, voir les notes de publication de Django 1.4).Le gestionnaire de requête
mod_python
sera supprimé. Le gestionnairemod_wsgi
devrait être utilisé à la place.L’attribut
template
des objetsdjango.test.client.Response
renvoyés par le client de test sera supprimé. L’attributtemplates
devrait être utilisé à la place.django.test.simple.DjangoTestRunner
sera supprimé. Utilisez à la place une classe intégrée deunittest
. Les fonctionnalités dedjango.test.simple.DjangoTestRunner
(y compris l’échec rapide et l’interruption des tests par Ctrl-C) sont aussi disponibles dansunittest.TextTestRunner
.La fonction non documentée
django.contrib.formtools.utils.security_hash
sera supprimée. Utilisezdjango.contrib.formtools.utils.form_hmac
à la place.Les modules de vues génériques basées sur les fonctions seront supprimés en faveur de leurs équivalents basés sur des classes, comme expliqué ici.
django.core.servers.basehttp.AdminMediaHandler
sera supprimé. Utilisezdjango.contrib.staticfiles.handlers.StaticFilesHandler
à sa place.La bibliothèque de balises de gabarits
adminmedia
et la balise de gabarit{% admin_media_prefix %}
seront supprimés en faveur de la gestion générique des fichiers statiques (suppression accélérée par rapport au processus d’obsolescence habituel, voir les notes de publication de Django 1.4).Les balises de gabarit
url
etssi
seront modifiées pour que le premier argument de chaque balise soit une variable de gabarit et non automatiquement une chaîne. Dans 1.4, ce comportement est fourni par une version de la balise dans la bibliothèque de balises de gabaritsfuture
.Les commandes d’administration
reset
etsqlreset
seront supprimées.Les moteurs d’authentification devront prendre en charge un utilisateur inactif transmis à toutes les méthodes s’occupant de permissions. L’attribut
supports_inactive_user
ne sera plus pris en compte et peut être supprimé de tout moteur personnalisé.transform()
générera une exceptionGEOSException
lorsqu’on lui transmet une géométrie sans valeur de SRID.django.http.CompatCookie
sera supprimée en faveur dedjango.http.SimpleCookie
.django.core.context_processors.PermWrapper
etdjango.core.context_processors.PermLookupDict
seront supprimés en faveur de respectivementdjango.contrib.auth.context_processors.PermWrapper
etdjango.contrib.auth.context_processors.PermLookupDict
.Les réglages
MEDIA_URL
etSTATIC_URL
devront obligatoirement se terminer par une barre oblique pour s’assurer que la manière de combiner les chemins dans les gabarits soit harmonisée.django.db.models.fields.URLField.verify_exists
sera supprimée. La fonctionnalité a été rendue obsolète dans 1.3.1 en raison de problèmes de sécurité et de performance insurmontables, et son obsolescence a donc été accélérée.Les traductions situées au niveau du chemin du projet sont ignorées durant le processus de construction des traductions au moment de l’exécution. Le réglage
LOCALE_PATHS
peut être utilisé pour la même tâche en incluant comme valeur le chemin sur le système de fichiers vers un répertoirelocale
contenant des traductions non liées à une application précise.L’application contribuée Markup ne prendra plus en charge les versions de la bibliothèque Python-Markdown plus anciennes que la 2.1. Une obsolescence accélérée a été choisie car il s’agissait d’une obsolescence liée à la sécurité.
Le réglage
CACHE_BACKEND
sera supprimé. Les moteurs de cache doivent être indiqués dans le réglageCACHES
.
1.4¶
Consultez les notes de publication de Django 1.2 pour plus de détails sur ces changements.
CsrfResponseMiddleware
etCsrfMiddleware
seront supprimés. Utilisez la balise de gabarit{% csrf_token %}
dans les formulaires pour activer la protection CSRF.CsrfViewMiddleware
est conservée et activée par défaut.Les anciennes importations de fonctionnalité CSRF (
django.contrib.csrf.*
), qui sont passées dans le cœur Django dans la version 1.2 seront supprimées.Le module
django.contrib.gis.db.backend
sera supprimé en faveur des moteurs spécifiques.SMTPConnection
sera supprimée en faveur d’une API générique de moteur de courriels.Les fonctions de génération SQL plusieurs-à-plusieurs des moteurs de base de données seront supprimées.
La possibilité d’utiliser la famille de réglages de premier niveau
DATABASE_*
pour définir les connexions de base de données sera supprimée.La possibilité d’utiliser une notation raccourcie pour pointer vers un moteur de base de données (par ex.
sqlite3
au lieu dedjango.db.backends.sqlite3
) sera supprimée.Les méthodes
get_db_prep_save
,get_db_prep_value
etget_db_prep_lookup
devront prendre en charge les bases de données multiples.Le modèle
Message
(dansdjango.contrib.auth
), son gestionnaire d’objets liés dans le modèleUser
(user.message_set
) et ses méthodes associées (user.message_set.create()
etuser.get_and_delete_messages()
) seront supprimées. Il est recommandé d’utiliser l’infrastructure des messages à la place. La variable liéemessages
renvoyée par le processeur de contexteauth
sera également supprimée. Notez que cela signifie que l’application admin va dépendre du processeur de contexte des messages.Les moteurs d’authentification devront prendre en charge le paramètre
obj
pour le contrôle des permissions. L’attributsupports_object_permissions
ne sera plus pris en compte et peut être supprimé de tout moteur personnalisé.Les moteurs d’authentification devront prendre en charge la classe
AnonymousUser
transmise à toutes les méthodes s’occupant de permissions. La variablesupports_anonymous_user
ne sera plus prise en compte et peut être supprimée de tout moteur personnalisé.La possibilité d’indiquer une chargeur de gabarit sous forme d’exécutable plutôt que d’une classe
Loader
sera supprimée, tout comme les fonctionsload_template_source
qui sont incluses avec les chargeurs de gabarits intégrés par rétrocompatibilité.django.utils.translation.get_date_formats()
etdjango.utils.translation.get_partial_date_formats()
. Ces fonctions seront supprimées ; utilisez django.utils.formats.get_format()` qui est sensible à la locale active pour obtenir les bons formats.Dans
django.forms.fields
, les constantesDEFAULT_DATE_INPUT_FORMATS
,DEFAULT_TIME_INPUT_FORMATS
etDEFAULT_DATETIME_INPUT_FORMATS
seront supprimées. Utilisezdjango.utils.formats.get_format()
pour obtenir les formats appropriés.La possibilité d’utiliser un lanceur de tests basé sur une fonction sera supprimée, de même que le lanceur de tests
django.test.simple.run_tests()
.La vue
views.feed()
et la classefeeds.Feed
dansdjango.contrib.syndication
seront supprimées. La vue basée sur une classeviews.Feed
doit être utilisée à la place.django.core.context_processors.auth
. Cette publication va supprimer l’ancienne méthode en faveur de la nouvelle méthode dansdjango.contrib.auth.context_processors.auth
.Le moteur de base de données
postgresql
sera supprimé, utilisez à la place le moteurpostgresql_psycopg2
.Le code de langue
no
sera supprimé car il a été remplacé par le code de languenb
.Les moteurs d’authentification devront définir l’attribut booléen
supports_inactive_user
jusqu’à la version 1.5 qui considérera comme acquis le fait que tous les moteurs savent gérer les utilisateurs inactifs.django.db.models.fields.XMLField
sera supprimée. Elle a été rendue obsolète dans la version 1.3. Une obsolescence accélérée a été choisie car ce champ n’avait déjà plus aucune fonction supplémentaire qu’un simpleTextField
depuis la suppression deoldforms
. Toutes les occurrences deXMLField
peuvent être remplacées par le type de champTextField
.Le paramètre non documenté
mixin
de la méthodeopen()
dedjango.core.files.storage.Storage
(et ses sous-classes) sera supprimé.
1.3¶
Consultez les notes de publication de Django 1.1 pour plus de détails sur ces changements.
AdminSite.root()
. Cette méthode de branchement des URL d’administration sera supprimée en faveur de l’inclusion deadmin.site.urls
.Les moteurs d’authentification doivent définir les attributs booléens
supports_object_permissions
etsupports_anonymous_user
jusqu’à la version 1.4, après quoi Django supposera que tous les moteurs savent gérer ces options.