Annoncée le 4 décembre, la dernière version de Django 5.0, le célèbre framework web gratuit et open source, basé sur Python, a été enrichie de nombreuses fonctionnalités, en particulier de modèles simplifiés pour le rendu des champs de formulaire. Selon les notes de publication, Django 5.0 introduit le concept de groupe de champs et de modèles de groupes de champs, qui simplifient le rendu des éléments connexes d’un champ de formulaire Django comme son widget, son étiquette, les erreurs et le texte d’aide. Cette dernière version affiche désormais le nombre de facettes pour les filtres appliqués dans la liste de modifications de l’administrateur quand elle est activée via l’interface utilisateur. Ce comportement peut être modifié via l’attribut ModelAdmin.show_facets. Un nouveau paramètre Field.db_default dans Django 5.0 propose aux développeurs de définir des valeurs par défaut calculées par base de données. De plus, une classe GeneratedField crée des colonnes générées par la base de données. Ce champ peut être utilisé sur toutes les bases de données supportées pour construire un champ calculé à partir d’autres champs.

Django 5.0 offre plus d’options pour déclarer les choix de champs. Field.choices pour les champs de modèle et ChoiceField.choices pour ceux de formulaire offrent une plus grande flexibilité lors de la déclaration de leurs valeurs. Auparavant, les choix devaient être soit une liste de deux tuples, soit une sous-classe de type énumération, mais cette dernière nécessitait d’accéder à l’attribut .choices pour fournir des valeurs sous la forme attendue. Le framework prend en charge Python 3.10, 3.11 et 3.12. Suite à la sortie de la version 5.0, les développeurs suggèrent que les auteurs d’applications tierces abandonnent la prise en charge de toutes les versions antérieures à Django 4.2.

Django 5.0 peut être installé avec le programme d’installation du paquet pip : pip install Django==5.0.

Des fonctionnalités complémentaires

Parmi les autres fonctionnalités et améliorations de Django 5.0, on peut citer :

-Une autre méthode Adminsite.get_log_entries() permet de personnaliser l’ensemble de requêtes pour les entrées de journal listées sur le site.

-Les filtres d’administration django.contrib.admin.AllValuesFieldListFilter, ChoicesFieldListFilter et RelatedFieldListFilter gèrent désormais les paramètres de requête à valeurs multiples.

-XRegExp passe de la version 3.2.0 à la version 5.1.1.

-La nouvelle méthode AdminSite.get_model_admin() renvoie une classe admin pour la classe de modèle donnée.

-Les propriétés dans ModelAdmin.list_display prennent désormais en charge les attributs booléens.

-jQuery est mis à niveau de la version 3.6.4 vers la version 3.7.1.

-Pour le signalement des erreurs, sensitive_variables() et sensitive_post_parameters() peuvent dorénavant être utilisés avec des fonctions asynchrones.

-Le filtre de modèle escapeseq applique l’échappement à chaque élément d’une séquence.