Se rendre au contenu

Django REST Framework 3.13

Django 4.0 et arguments keyword-only
13 décembre 2021 par
Django REST Framework 3.13
Makersquad

Date de sortie : 13 décembre 2021

Documentation officielle : https://www.django-rest-framework.org/community/release-notes/#313x-series

Django 4.0 est sorti le même jour, et DRF suit le mouvement avec sa version 3.13. Au menu : la compatibilité avec Django 4.0, un relèvement du minimum requis à Python 3.6 et un changement cassant à surveiller de près lors de la migration. Peu de nouveautés spectaculaires, mais une version nécessaire pour rester à jour.


Les nouveautés principales

Support de Django 4.0

DRF 3.13 est compatible avec Django 2.2, 3.1, 3.2 et 4.0. La matrice de compatibilité reste large pour faciliter les migrations progressives. Python 3.6 devient la version minimale supportée.


Changement cassant : arguments keyword-only sur les champs

C’est le point à surveiller lors de la migration. Les arguments passés aux champs de serializer doivent désormais être explicitement nommés. La syntaxe positionnelle n’est plus acceptée.

# Avant — ne fonctionne plus avec DRF 3.13
aliases = serializers.ListField(serializers.CharField())

# Maintenant — l'argument doit être nommé
aliases = serializers.ListField(child=serializers.CharField())

Ce changement concerne tous les champs qui acceptent des arguments de configuration. Il améliore la lisibilité et évite les erreurs silencieuses liées à l’ordre des arguments positionnels. Si ton projet utilise des champs avec des arguments positionnels, un passage en revue du code s’impose avant la mise à jour.

Un exemple plus complet pour illustrer d’autres cas courants :

# Avant
tags = serializers.ListField(serializers.CharField(max_length=50))

# Maintenant
tags = serializers.ListField(child=serializers.CharField(max_length=50))


Fin du support de Python 3.5 et Django 2.1

DRF 3.13 abandonne le support de Python 3.5 (en fin de vie depuis septembre 2020) et de Django 2.1. Si tu es encore sur ces versions, DRF 3.12 reste la dernière option compatible, mais la migration est urgente.


É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

DRF 3.13 est une version de transition propre vers Django 4.0. Le seul point d’attention concerne les arguments keyword-only sur les champs de serializer : un changement cassant, mais qui rend le code plus explicite et plus sûr. Un grep rapide sur ListField(, DictField( et les autres champs composites dans ton codebase permettra d’identifier les lignes à corriger avant de mettre à jour.

Django REST Framework 3.11
Django 3.0 et schémas OpenAPI améliorés