Date de sortie : 1er août 2018
Documentation officielle : Django 2.1 release notes
Django 2.1 apporte des améliorations ciblées mais bienvenues. La nouvelle permission view en lecture seule va ravir les équipes qui jonglent avec les accès admin, et QuerySet.explain() devient votre nouveau meilleur ami pour débugger les requêtes lentes.
Les nouveautés principales
Permission “view” pour l’admin
Enfin ! Une nouvelle permission view rejoint les classiques add, change et delete. Fini les hacks pour donner un accès lecture seule à l’admin.
class Meta:
default_permissions = ('add', 'change', 'delete', 'view')
Filtre json_script pour les templates
Injecter du JSON dans une page HTML de manière sécurisée :
{{ data|json_script:"my-data" }}
Génère :
<script id="my-data" type="application/json">{"key": "value"}</script>
QuerySet.explain()
Votre requête est lente ? Demandez à Django de vous montrer ce que fait la base :
print(User.objects.filter(is_active=True).explain())
Cookies SameSite
Nouveaux settings SESSION_COOKIE_SAMESITE et CSRF_COOKIE_SAMESITE (défaut : Lax) pour se protéger contre les attaques CSRF.
Autres améliorations
- BooleanField peut maintenant être null=True (remplace NullBooleanField)
- Nouvelles fonctions texte : Chr, Left, Right, LPad, RPad, Trim
- QuerySet.raw() supporte prefetch_related()
- Cache local-memory avec stratégie LRU
É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 2.1 n’est pas une release révolutionnaire, mais elle corrige des irritants du quotidien. La permission view et explain() méritent à eux seuls la mise à jour.