Se rendre au contenu

Django 3.2 LTS est sorti

6 avril 2021 par
Django 3.2 LTS est sorti
Makersquad

Date de sortie : 6 avril 2021

Documentation officielle : Django 3.2 release notes

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

Nouvelle version LTS, nouveau lot de features bien pensées. Les index fonctionnels permettent enfin d’optimiser les recherches case-insensitive, et les décorateurs @display / @action pour l’admin améliorent sérieusement la lisibilité.


Les nouveautés principales

Index fonctionnels

Créer des index sur des expressions, pas seulement des colonnes :

from django.db.models import Index
from django.db.models.functions import Lower

class Person(models.Model):
    first_name = models.CharField(max_length=100)
    last_name = models.CharField(max_length=100)

    class Meta:
        indexes = [
            Index(
                Lower('first_name'),
                Lower('last_name'),
                name='name_lower_idx'
            ),
        ]


DEFAULT_AUTO_FIELD

Les nouveaux projets utilisent BigAutoField par défaut :

# settings.py
DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'

Plus de limite à 2 milliards d’enregistrements.


Auto-découverte des AppConfig

Plus besoin de default_app_config. Django trouve automatiquement la classe AppConfig dans apps.py.


Décorateurs pour l’admin

Nouvelle syntaxe plus lisible :

from django.contrib.admin import display, action

class ArticleAdmin(admin.ModelAdmin):
    list_display = ['title', 'author_name', 'is_recent']

    @display(description='Auteur', ordering='author__name')
    def author_name(self, obj):
        return obj.author.name

    @display(boolean=True, description='Récent')
    def is_recent(self, obj):
        return obj.created_at > timezone.now() - timedelta(days=7)

    @action(description='Publier les articles sélectionnés')
    def publish(self, request, queryset):
        queryset.update(status='published')


Backend cache pymemcache

Nouveau PyMemcacheCache comme alternative à python-memcached.


Autres améliorations

  • Support Python 3.10
  • Amélioration des messages d’erreur de l’ORM
  • JSONField transformé en lookup avec __


É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 3.2 LTS est le choix solide pour les nouveaux projets qui privilégient la stabilité. Les index fonctionnels et BigAutoField par défaut sont des changements de fond qui méritent d’être adoptés.

TypeScript 4.1 est sorti