Se rendre au contenu

Django REST Framework 3.14 est sorti

22 septembre 2022 par
Django REST Framework 3.14 est sorti
Makersquad

Date de sortie : 22 septembre 2022

Documentation officielle : DRF 3.14 Announcement

DRF 3.14 met à jour la compatibilité Django et corrige quelques incohérences. Attention au changement de comportement sur les permissions OR — si vous les utilisez, lisez attentivement les notes de migration.


Les nouveautés principales

Support de Django 4.1

DRF 3.14 supporte pleinement Django 4.1 et abandonne le support de Django 2.2.

raise_exception devient keyword-only

L’argument raise_exception de is_valid() doit maintenant être passé par nom :

# Avant (déprécié)
serializer.is_valid(True)

# Après
serializer.is_valid(raise_exception=True)


Changement de sémantique pour OR sur les permissions

Le comportement de | (OR) entre permissions a changé :

# Avant : retournait True si une permission retournait True
# Après : retourne True seulement si aucune ne retourne False explicitement

class IsOwnerOrReadOnly(permissions.BasePermission):
    def has_permission(self, request, view):
        if request.method in permissions.SAFE_METHODS:
            return True
        return False  # Ceci bloque maintenant le OR


ManyRelatedField avec source manquante

ManyRelatedField supporte maintenant le retour d’une valeur par défaut quand l’attribut source n’existe pas :

class UserSerializer(serializers.ModelSerializer):
    roles = serializers.SlugRelatedField(
        many=True,
        read_only=True,
        slug_field='name',
        default=[]  # Retourné si 'roles' n'existe pas
    )


API get_reference publique

La méthode pour obtenir une référence OpenAPI est maintenant publique :

from rest_framework.schemas.openapi import AutoSchema

schema = AutoSchema()
ref = schema.get_reference(serializer)


Suppression de NullBooleanField

NullBooleanField est définitivement supprimé. Migrez vers BooleanField(allow_null=True).

e

É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

Cette release est surtout une mise à niveau de compatibilité. Le changement sur les permissions OR peut casser du code existant — vérifiez vos classes de permission si vous utilisez l’opérateur |.

Django 4.1 est sorti