Date de sortie : 18 mars 2026
Documentation officielle : Release notes DRF 3.17.x
Une release de modernisation : DRF aligne son support des versions Python et Django sur les plus récentes, et fait un peu de ménage en retirant coreapi.
Les nouveautés principales
Nouveaux décorateurs pour les vues fonctionnelles
Trois décorateurs viennent compléter l’API des function-based views :
from rest_framework.decorators import (
api_view,
versioning_class,
content_negotiation_class,
metadata_class,
)
@api_view(["GET"])
@versioning_class(URLPathVersioning)
@content_negotiation_class(DefaultContentNegotiation)
@metadata_class(SimpleMetadata)
def my_view(request):
...
Avant, il fallait passer par une APIView pour configurer ces aspects. Ces décorateurs rapprochent les vues fonctionnelles des capacités des vues classe.
Format de sortie pour DurationField
Possibilité de personnaliser la sérialisation d’un DurationField :
from rest_framework import serializers
class TaskSerializer(serializers.Serializer):
duration = serializers.DurationField(output_format="iso8601")
Support étendu pour UniqueConstraint
DRF prend désormais en compte les attributs violation_error_code et violation_error_message des UniqueConstraint Django pour construire les messages d’erreur de validation.
Support natif pour ipaddress
Les objets ipaddress.IPv4Address, IPv6Address, etc. sont maintenant sérialisables directement par le JSONEncoder de DRF.
BigInteger en string
Option pour sérialiser les BigIntegerField en chaîne, utile pour les IDs qui dépassent la précision Number côté JavaScript :
class AccountSerializer(serializers.Serializer):
id = serializers.IntegerField(as_string=True)
Breaking changes
- Support de Python 3.9 retiré. Minimum requis : Python 3.10.
- Support de coreapi définitivement retiré (déja déprécié depuis plusieurs versions). Utilisez drf-spectacular ou drf-yasg pour générer votre schéma OpenAPI.
Autres améliorations
- Support officiel de Django 6.0 et Python 3.14
- Correction d’un risque d’écrasement de Token lors de la création
- UniqueTogetherValidator fonctionne correctement avec des champs en lecture seule
- Validation des ManyToMany avec default=None corrigée
- HTMLFormRenderer respecte le format datetime-local
- OrderingFilter : correction d’arguments mutables par défaut
- TokenAdmin respecte USERNAME_FIELD sur les modèles utilisateur personnalisés
- MultipleChoiceField préserve l’ordre des valeurs
- Migration du packaging vers pyproject.toml
- Génération des tokens via le module secrets
É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
Si vous utilisez encore Python 3.9 ou coreapi, préparez la migration avant de mettre à jour. Sinon, la montée vers 3.17 est sans risque et apporte de petits confort appréciables, en particulier les nouveaux décorateurs et le support natif de ipaddress.