Date de sortie : 3 août 2022
Documentation officielle : Django 4.1 release notes
L’ORM async, c’est maintenant. Django 4.1 ajoute les méthodes aget(), acreate(), async for sur les QuerySets. Après les vues async en 3.1, c’est la pièce manquante qui rend Django vraiment utilisable en mode asynchrone.
Les nouveautés principales
ORM asynchrone — la pièce manquante
Les QuerySets ont maintenant des méthodes async préfixées par a :
# Récupérer un objet
user = await User.objects.aget(pk=1)
# Créer
user = await User.objects.acreate(username='alice')
# Itérer
async for article in Article.objects.filter(published=True):
print(article.title)
# Premier élément
first = await Article.objects.afirst()
Vues de classe asynchrones
Les CBV supportent les handlers async :
from django.views import View
from django.http import JsonResponse
import asyncio
class AsyncDataView(View):
async def get(self, request):
data = await self.fetch_data()
return JsonResponse(data)
async def fetch_data(self):
await asyncio.sleep(0.1) # Simule un appel async
return {'status': 'ok'}
Validation des contraintes
Les CheckConstraint, UniqueConstraint et ExclusionConstraint sont maintenant validées lors de full_clean() :
product = Product(price=-10) product.full_clean() # Lève ValidationError si CheckConstraint violée
Formulaires en <div>
Nouveau rendu par défaut plus accessible :
{{ form.as_div }}
Génère une structure avec <fieldset> et <legend> pour les groupes de champs.
Autres améliorations
- Support Python 3.11
- CSRF_COOKIE_MASKED pour la transition de sécurité
- Amélioration de l’accessibilité de l’admin
- Lookups __ dans ModelAdmin.search_fields pour les relations
É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.1 rend l’async praticable. L’ORM asynchrone était la dernière barrière pour utiliser Django avec des frameworks comme FastAPI-style. Cette release ouvre de nouvelles possibilités pour les applications à forte concurrence I/O.