Date de sortie : 1er avril 2019
Documentation officielle : Django 2.2 release notes
Support : LTS (Long Term Support) — mises à jour de sécurité pendant 3 ans
C’est la release à ne pas manquer si vous cherchez la stabilité. Django 2.2 est une version LTS, ce qui signifie 3 ans de support. Elle apporte aussi des contraintes de base de données natives et bulk_update() — deux features que la communauté attendait depuis longtemps.
Les nouveautés principales
Contraintes de base de données
Nouvelles classes CheckConstraint et UniqueConstraint pour définir des contraintes au niveau de la base :
from django.db import models
class Product(models.Model):
name = models.CharField(max_length=255)
price = models.DecimalField(max_digits=10, decimal_places=2)
class Meta:
constraints = [
models.CheckConstraint(
check=models.Q(price__gte=0),
name='price_positive'
),
]
bulk_update() pour les mises à jour en masse
Mettre à jour plusieurs objets efficacement :
products = Product.objects.filter(category='electronics')
for product in products:
product.price *= 0.9 # -10%
Product.objects.bulk_update(products, ['price'])
Index partiels
Créer des index uniquement sur un sous-ensemble de lignes :
class Meta:
indexes = [
models.Index(
fields=['email'],
condition=models.Q(is_active=True),
name='active_users_email_idx'
),
]
HttpRequest.headers
Accès simplifié aux en-têtes HTTP :
# Avant
request.META.get('HTTP_AUTHORIZATION')
# Après
request.headers.get('Authorization')
Autres améliorations
- bulk_create() avec ignore_conflicts=True
- migrate --plan pour prévisualiser les migrations
- ManyToMany avec modèle intermédiaire : add(), remove(), set() fonctionnent
- Watchman pour runserver (meilleure détection des changements)
Échanger avec un expert Django
Nous revenons vers vous sous 24h.
Chez Makersquad, nous accompagnons nos clients dans la conception d’application modernes et performantes avec Django .Que vous souhaitiez lancer une nouvelle API, moderniser une architecture existante ou améliorer les performances de vos services backend, notre équipe met son expertise à votre disposition pour concevoir des solutions fiables, rapides et parfaitement adaptées à vos enjeux métier.
À retenir
Django 2.2 LTS est le choix évident pour les projets en production qui privilégient la stabilité. Les contraintes de base de données et bulk_update() sont des additions majeures qui améliorent vraiment le quotidien.