Date de sortie : 7 décembre 2021
Documentation officielle : Django 4.0 release notes
Django passe en version majeure 4.0. Au programme : exit pytz, bienvenue zoneinfo. Et le cache Redis intégré nativement, c’est un package tiers de moins à gérer. Les contraintes uniques fonctionnelles sont la cerise sur le gâteau.
Les nouveautés principales
zoneinfo remplace pytz
Django utilise maintenant la bibliothèque standard zoneinfo (Python 3.9+) :
from zoneinfo import ZoneInfo
from datetime import datetime
paris_tz = ZoneInfo('Europe/Paris')
now = datetime.now(paris_tz)
pytz est déprécié et sera supprimé dans Django 5.0.
Cache Redis intégré — enfin natif !
Plus besoin de django-redis :
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.redis.RedisCache',
'LOCATION': 'redis://127.0.0.1:6379',
}
}
Contraintes uniques fonctionnelles
Comme les index fonctionnels, mais pour l’unicité :
from django.db.models import UniqueConstraint
from django.db.models.functions import Lower
class User(models.Model):
email = models.EmailField()
class Meta:
constraints = [
UniqueConstraint(
Lower('email'),
name='unique_email_case_insensitive'
),
]
Hasher scrypt
Nouvelle option de hashage plus sécurisée (nécessite OpenSSL 1.1+) :
PASSWORD_HASHERS = [
'django.contrib.auth.hashers.ScryptPasswordHasher',
'django.contrib.auth.hashers.PBKDF2PasswordHasher',
# ...
]
Rendu des formulaires par templates
Les formulaires utilisent maintenant le moteur de templates :
# Personnalisation globale FORM_RENDERER = 'django.forms.renderers.TemplatesSetting'
Autres améliorations
- Python 3.8+ requis (fin du support 3.6/3.7)
- startproject et startapp refactorisés
- Amélioration du système de templates pour les formulaires
É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 4.0 modernise l’infrastructure. Le passage à zoneinfo et le cache Redis natif simplifient la stack. Si vous êtes sur 3.2 LTS, pas d’urgence, mais gardez cette version en tête pour vos nouveaux projets.