Se rendre au contenu

Django 5.2 LTS est sorti

2 avril 2025 par
Django 5.2 LTS est sorti
Makersquad

Date de sortie : 2 avril 2025

Documentation officielle : Django 5.2 release notes

Support : LTS — mises à jour de sécurité jusqu’en avril 2028

Nouvelle LTS, et pas des moindres. Django 5.2 résout le ticket #373, ouvert depuis 2005 : les clés primaires composites sont enfin là. L’import automatique des modèles dans le shell va aussi changer votre quotidien.



Les principales nouveautés 

Clés primaires composites — 20 ans d’attente

Le ticket #373, ouvert depuis 2005, est enfin résolu :

from django.db.models import CompositePrimaryKey

class OrderItem(models.Model):
    order = models.ForeignKey(Order, on_delete=models.CASCADE)
    product = models.ForeignKey(Product, on_delete=models.CASCADE)
    quantity = models.IntegerField()

    class Meta:
        pk = CompositePrimaryKey('order', 'product')

Parfait pour les tables de liaison, les données legacy et les cas où une PK auto-incrémentée n’a pas de sens.


Import automatique des modèles — le shell devient utilisable

Plus besoin de from myapp.models import * :

$ python manage.py shell
>>> User.objects.count()  # Directement disponible !
42
>>> Article.objects.filter(status='published')
<QuerySet [...]>

Tous les modèles des apps installées sont importés automatiquement.


Négociation de contenu HTTP

Nouvelle méthode pour implémenter la négociation de contenu :

def api_view(request):
    preferred = request.get_preferred_type(['text/html', 'application/json'])

    if preferred == 'application/json':
        return JsonResponse({'data': 'value'})
    return render(request, 'page.html')


Personnalisation du rendu des formulaires

Nouveau système de classes pour personnaliser le rendu :

# Niveau projet
class MyRenderer(BaseRenderer):
    bound_field_class = MyBoundField

# Niveau champ
class MyField(forms.CharField):
    bound_field_class = CustomBoundField


Autres améliorations

Support Python 3.14 

PostgreSQL 14+ requis (fin du support 13) 

MySQL utilise utf8mb4 par défaut 

UniqueConstraint.violation_error_code toujours respecté 

Amélioration des messages d’erreur de validation


É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

Django 5.2 LTS est la nouvelle référence pour les projets de production. Les clés primaires composites étaient la feature la plus demandée depuis près de 20 ans. L’import automatique des modèles et la négociation de contenu sont des bonus appréciables. Support garanti jusqu’en 2028.

Sources : Django 5.2 release notes

Starlette 0.52
State typé en syntaxe dictionnaire