Projet

Général

Profil

Bug #20831

templates django et encodage des variables

Ajouté par Frédéric Péters il y a plus de 6 ans. Mis à jour il y a plus de 5 ans.

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

Révision 0218258a (diff)
Ajouté par Frédéric Péters il y a plus de 6 ans

templates: fix encoding handling in django templates (#20831)

Historique

#1

Mis à jour par Frédéric Péters il y a plus de 6 ans

Et on pourra se passer de ça une fois qu'on fera de l'unicode partout.

#3

Mis à jour par Thomas Noël il y a plus de 6 ans

Ack ; bien vu.

#4

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)
#5

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

Formats disponibles : Atom PDF