Se rendre au contenu

Django REST Framework 3.15 est sorti

15 mars 2024 par
Django REST Framework 3.15 est sorti
Makersquad

La nouvelle version de DRF vient d’arriver avec son lot de bonnes nouvelles.

Date de sortie : 15 mars 2024

Documentation officielle : https://www.django-rest-framework.org/community/3.15-announcement/



Les nouveautés principales

Support Django 5.0 et Python 3.12

À jour avec l’écosystème : DRF 3.15 supporte Django 5.0 et Python 3.12, tout en maintenant la compatibilité avec Django 3.0 et Python 3.6. Vous pouvez migrer à votre rythme.


Validators pour UniqueConstraint

Bonne nouvelle : ModelSerializer génère maintenant automatiquement des validators pour les UniqueConstraint Django. Fini les validators manuels :

class Product(models.Model):
    sku = models.CharField(max_length=50)
    store = models.ForeignKey(Store, on_delete=models.CASCADE)

    class Meta:
        constraints = [
            models.UniqueConstraint(
                fields=['sku', 'store'],
                name='unique_sku_per_store'
            )
        ]

# Le serializer génère automatiquement UniqueTogetherValidator


URLs SimpleRouter sans regex

Plus besoin de regex illisibles. Les routes peuvent maintenant utiliser le path matching natif de Django :

from rest_framework.routers import SimpleRouter

router = SimpleRouter(use_regex_path=False)
router.register('users', UserViewSet)

# Génère /users/<pk>/ au lieu de /users/(?P<pk>[^/.]+)/


Adieu pytz

DRF fait le ménage : exit pytz, place à zoneinfo (inclus dans la stdlib Python 3.9+). Une dépendance en moins à gérer.

from zoneinfo import ZoneInfo

# C'est tout ce qu'il faut maintenant


Recherche par phrases avec guillemets

Le SearchFilter devient plus intelligent : il comprend maintenant les guillemets pour rechercher des phrases exactes.

# GET /products/?search="red shoes" large
# Cherche la phrase exacte "red shoes" ET le mot "large"

class ProductViewSet(viewsets.ModelViewSet):
    search_fields = ['name', 'description']


Et aussi…

Cette version, c’est le fruit du travail de 138 contributeurs sur 176 commits. Au menu : documentation améliorée, corrections de bugs et plein de petites optimisations qui rendent la vie plus douce.


É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.15 est une release de modernisation. Les validators automatiques pour UniqueConstraint, le routeur sans regex et la recherche par phrases sont des améliorations de qualité de vie bienvenues. Si vous n’avez pas migré depuis un moment, c’est le bon moment.

TypeScript 5.5 est sorti