Se rendre au contenu

Django 4.2 LTS est sorti

3 avril 2023 par
Django 4.2 LTS est sorti
Makersquad

Date de sortie : 3 avril 2023

Documentation officielle : Django 4.2 release notes

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

Nouvelle LTS, nouvelle référence. Django 4.2 supporte enfin Psycopg 3, ajoute le dark mode à l’admin (oui, vraiment), et permet de commenter vos tables/colonnes directement depuis les modèles. C’est la version à cibler pour les projets sérieux.

Les nouveautés principales

Support de Psycopg 3

Django supporte maintenant psycopg 3.1.8+, le nouveau driver PostgreSQL :

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        # Fonctionne avec psycopg2 ou psycopg3
    }
}

Psycopg 3 est plus moderne, mieux typé et supporte l’async nativement.


Commentaires sur les tables et colonnes

Documenter le schéma directement dans les modèles :

class Product(models.Model):
    sku = models.CharField(
        max_length=50,
        db_comment='Stock Keeping Unit - identifiant unique produit'
    )
    price = models.DecimalField(
        max_digits=10,
        decimal_places=2,
        db_comment='Prix HT en euros'
    )

    class Meta:
        db_table_comment = 'Catalogue des produits vendus'


Thème sombre dans l’admin — enfin !

L’admin propose maintenant un toggle clair/sombre qui suit les préférences système. Vos yeux vous remercieront lors des sessions nocturnes.


Configuration des storages simplifiée

Nouveau setting STORAGES pour configurer plusieurs backends :

STORAGES = {
    'default': {
        'BACKEND': 'django.core.files.storage.FileSystemStorage',
    },
    'staticfiles': {
        'BACKEND': 'django.contrib.staticfiles.storage.StaticFilesStorage',
    },
    's3': {
        'BACKEND': 'storages.backends.s3boto3.S3Boto3Storage',
        'OPTIONS': {'bucket_name': 'my-bucket'},
    },
}


InMemoryStorage pour les tests

Stockage en mémoire, parfait pour les tests :

from django.core.files.storage import InMemoryStorage

@override_settings(
    STORAGES={'default': {'BACKEND': 'django.core.files.storage.InMemoryStorage'}}
)
def test_upload(self):
    ...


Méthodes async sur les modèles

await article.asave()
await article.adelete()
await article.arefresh_from_db()


Autres améliorations

  • makemigrations --update pour fusionner avec la dernière migration
  • CharField.max_length optionnel sur PostgreSQL
  • prefetch_related() supporte les querysets slicés
  • Support Python 3.12

É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 4.2 LTS est la nouvelle baseline pour les projets de production. Psycopg 3, dark mode, et l’API storage simplifiée font de cette release un excellent choix pour les 3 prochaines années de support.

TypeScript 5.0 est sorti