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.
