Bug #20831
templates django et encodage des variables
Statut:
Fermé
Priorité:
Normal
Assigné à:
-
Version cible:
-
Début:
20 décembre 2017
Echéance:
% réalisé:
0%
Temps estimé:
Patch proposed:
Oui
Planning:
Description
Les variables contenant du texte passées dans le contexte sont des chaines de bytes mais l'interprétation à l'intérieur des templates passe par des chaines unicode.
En supposant donc un form_var_whatever = 'éléphant' (encodé \xc3\xa9l\xc3\xa9phant), et une comparaison {% if form_var_whaterver == "éléphant" %}, on se trouve à un moment dans ce code :
-> '==': infix(10, lambda context, x, y: x.eval(context) == y.eval(context)), (Pdb) p x.eval(context) '\xc3\xa9l\xc3\xa9phant' (Pdb) p y.eval(context) u'\xe9l\xe9phant'
Fichiers
Révisions associées
Historique
Mis à jour par Frédéric Péters il y a plus de 6 ans
- Fichier 0001-templates-fix-encoding-handling-in-django-templates-.patch 0001-templates-fix-encoding-handling-in-django-templates-.patch ajouté
- Statut changé de Nouveau à En cours
- Patch proposed changé de Non à Oui
Et on pourra se passer de ça une fois qu'on fera de l'unicode partout.
Mis à jour par Frédéric Péters il y a plus de 6 ans
- Statut changé de En cours à Résolu (à déployer)
commit 0218258a156c0fddb06a0da4f641a6e1d601cb40 Author: Frédéric Péters <fpeters@entrouvert.com> Date: Wed Dec 20 15:57:53 2017 +0100 templates: fix encoding handling in django templates (#20831)
Mis à jour par Frédéric Péters il y a plus de 5 ans
- Statut changé de Résolu (à déployer) à Solution déployée
templates: fix encoding handling in django templates (#20831)