Django 1.4 est sorti le 23 mars 2012
Au programme énormément de nouveautés ! Les principales étant :
- Le support des time zones a été grandement amélioré :
- Auparavant Django gérait les dates et temps de façon naïve, ce qui menait à une interprétation propre a chaque développeur de ce qu'un date/time signifie et menait a des incompréhensions entrainant des bugs concernant les time zones.
A présent Django utilise le format UTC, ce qui permet d'utiliser des objets datetime dits time-zone-aware (conscients de leur timezone) et les traduit correctement selon la time zone de l'utilisateur dans les templates et les formulaires.
- Des évolutions sur les méthodes de l'ORM on également été apportées parmi lesquelles :
- Le support de SELECT FOR UPDATE
- bulk insert
- QuerySet.prefetch_related
- Ainsi que sur la sécurité :
- Amélioration de la création des mots de passes. L'algorithme PBKDF2 remplace le SHA1.
- Incorporation d'outils pour la signature cryptographique (fonctionnalité "récupérer mon compte", vérification de la valeur des champs hidden des formulaires, création d'url uniques)
- Évolutions sur la protection CSRF.
- Protection contre le clickjacking.
- On note également l'apparition d'un nouveau manage.py incluant un nouveau layout. Pour ceux n'étant pas à l'aise avec le nouveau layout, il est possible de définir un template par défaut à utiliser lors de la création d'un nouveau projet.
- Enfin on dénote le support des frameworks de tests dits in-browser comme selenium. Ce qui permet de mieux comprendre ce qu'il se passe lors des phases de tests avec un navigateur.
Amélioration mineure mais notable, le tag {% elif %} est disponible. Ce qui permettra d'organiser son code de manière plus concise sans avoir à utiliser un autre langage de template tel que Jinja2.
Le doctype HTML5 est désormais utilisé pour le plus grand bien de l'évolution du Web :)
La fonctionnalité Form Wizard a été réécrite en utilisant les class-based views.
Les tags de traduction {% trans %} et {% blocktrans %} supporte le contexte grâce au nouveau mot clef context.
L'apparition très commode du tag {% static %} vous permettant de charger facilement l'url de vos fichiers statiques ! Une de mes nouveautés préférées.
Cependant à toute nouvelle version, nouveaux supports.
A partir de la version 1.4, la version 2.5 de python est celle supportée par Django.
Une liste d'incompatibilités avec la version 1.3 apparait. Pour mettre a jour vos projets Django, lisez la liste de ces incompatibilités : Backwards incompatible changes in 1.4
De plus certaines pratiques deviennent déconseillées : Features deprecated in 1.4
Toute la liste des améliorations apportées a Django 1.4 est disponible ici : Django 1.4 release notes
N'hésitez pas à passer vos projets en version 1.4, car à partir de maintenant les tutoriels écrits sur ce blog utiliseront cette version afin d'être à jour le plus possible ;)