Vue d'ensemble

Django 5.2 LTS, publie le 2 avril 2025, est une version a support long terme. Elle introduit les cles primaires composites, l'import automatique des modeles dans le shell et des ameliorations de l'ORM.

Fonctionnalites principales

Cles primaires composites

Django supporte enfin les cles primaires composites via CompositePrimaryKey. Cela simplifie la modelisation de tables de jointure et de schemas existants.

python
from django.db import models

class Inscription(models.Model):
    etudiant = models.ForeignKey('Etudiant', on_delete=models.CASCADE)
    cours = models.ForeignKey('Cours', on_delete=models.CASCADE)
    date = models.DateField(auto_now_add=True)

    class Meta:
        pk = models.CompositePrimaryKey('etudiant_id', 'cours_id')

Import automatique des modeles dans le shell

La commande python manage.py shell importe automatiquement tous les modeles du projet, evitant les imports manuels repetitifs.

python
# python manage.py shell
# Tous les modeles sont disponibles automatiquement :

# >>> User.objects.count()
# 42
# >>> Article.objects.filter(published=True).count()
# 15
# Plus besoin de : from myapp.models import User, Article

Ameliorations de l'ORM

L'ORM beneficie de nouvelles expressions de requete et d'optimisations de performance pour les jointures complexes.

python
from django.db.models import Q, F

# Requetes plus expressives
articles = Article.objects.filter(
    Q(published=True) & Q(views__gte=F('min_views'))
).select_related('author').only('title', 'author__name')

Sources