Se rendre au contenu

Django 5.1 est sorti

7 août 2024 par
Django 5.1 est sorti
Makersquad

Date de sortie : 7 août 2024

Documentation officielle : Django 5.1 release notes

Django 5.1 simplifie des irritants du quotidien. Le tag {% querystring %} remplace des dizaines de lignes de code template. Le connection pooling PostgreSQL intégré évite un package tiers. Et LoginRequiredMiddleware inverse la logique de sécurité — tout est protégé par défaut.



Les nouveautés principales

Tag {% querystring %} — enfin !

Manipuler les paramètres d’URL simplement dans les templates :

<a href="?{% for key, values in request.GET.iterlists %}{% if key != 'page' %}{% for value in values %}{{ key }}={{ value }}&{% endfor %}{% endif %}{% endfor %}page={{ next }}">
  Page suivante
</a>

<a href="{% querystring page=next_page %}">Page suivante</a>

<a href="{% querystring filter=None %}">Réinitialiser</a>

<a href="{% querystring page=1 sort='date' %}">Trier par date</a>


Pools de connexions PostgreSQL

Réduire la latence avec le connection pooling intégré :

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'mydb',
        'OPTIONS': {
            'pool': {
                'min_size': 2,
                'max_size': 4,
                'timeout': 10,
            }
        },
    },
}


LoginRequiredMiddleware

Protéger toutes les vues par défaut, autoriser explicitement les exceptions :

# settings.py
MIDDLEWARE = [
    # ...
    'django.contrib.auth.middleware.LoginRequiredMiddleware',
]
# views.py
from django.contrib.auth.decorators import login_not_required

@login_not_required
def public_page(request):
    return render(request, 'public.html')

Inverse la logique habituelle : sécurisé par défaut.


Lookups __ dans l’admin

Recherche sur les relations dans search_fields :

class ArticleAdmin(admin.ModelAdmin):
    search_fields = [
        'title',
        'author__username',
        'author__email',
        'category__name',
    ]


Autres améliorations

  • Support Python 3.13
  • DomainNameValidator pour valider les noms de domaine
  • Sessions async
  • Itérations PBKDF2 augmentées à 870 000
  • Amélioration de l’accessibilité des pages d’erreur

É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.1 est une release “quality of life”. {% querystring %} simplifie énormément la pagination et les filtres. Le pooling PostgreSQL intégré et LoginRequiredMiddleware sont des additions pratiques qui réduisent la stack externe.

Python 3.13 est sorti