Date de sortie : 6 avril 2021
Documentation officielle : Django 3.2 release notes
Support : LTS — mises à jour de sécurité jusqu’en avril 2024
Nouvelle version LTS, nouveau lot de features bien pensées. Les index fonctionnels permettent enfin d’optimiser les recherches case-insensitive, et les décorateurs @display / @action pour l’admin améliorent sérieusement la lisibilité.
Les nouveautés principales
Index fonctionnels
Créer des index sur des expressions, pas seulement des colonnes :
from django.db.models import Index
from django.db.models.functions import Lower
class Person(models.Model):
first_name = models.CharField(max_length=100)
last_name = models.CharField(max_length=100)
class Meta:
indexes = [
Index(
Lower('first_name'),
Lower('last_name'),
name='name_lower_idx'
),
]
DEFAULT_AUTO_FIELD
Les nouveaux projets utilisent BigAutoField par défaut :
# settings.py DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
Plus de limite à 2 milliards d’enregistrements.
Auto-découverte des AppConfig
Plus besoin de default_app_config. Django trouve automatiquement la classe AppConfig dans apps.py.
Décorateurs pour l’admin
Nouvelle syntaxe plus lisible :
from django.contrib.admin import display, action
class ArticleAdmin(admin.ModelAdmin):
list_display = ['title', 'author_name', 'is_recent']
@display(description='Auteur', ordering='author__name')
def author_name(self, obj):
return obj.author.name
@display(boolean=True, description='Récent')
def is_recent(self, obj):
return obj.created_at > timezone.now() - timedelta(days=7)
@action(description='Publier les articles sélectionnés')
def publish(self, request, queryset):
queryset.update(status='published')
Backend cache pymemcache
Nouveau PyMemcacheCache comme alternative à python-memcached.
Autres améliorations
- Support Python 3.10
- Amélioration des messages d’erreur de l’ORM
- JSONField transformé en lookup avec __
É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 3.2 LTS est le choix solide pour les nouveaux projets qui privilégient la stabilité. Les index fonctionnels et BigAutoField par défaut sont des changements de fond qui méritent d’être adoptés.