Development #64548
Mis à jour par Frédéric Péters il y a environ 2 ans
Si c'est un entier qui est passé ça explose en TypeError,
<pre>
Exception:
type = '<class 'TypeError'>', value = ''int' object is not iterable'
Stack trace (most recent call first):
File "…/wcs/wcs/fields.py", line 2483, in store_display_value
2481 return ''
2482 choices = []
> 2483 for choice in data.get(field_id) or []:
2484 if isinstance(options[0], str):
2485 choices.append(choice)
locals:
choices = []
data = {'520': 2}
field_id = '520'
options = [('1', 'Poussière', '1'), ('2', 'Réunions', '2'), ('3', 'MEP', '3')]
raise_on_error = False
self = <ItemsField 520 'Quelles sont les allergies de votre enfant ?'>
File "…/wcs/wcs/fields.py", line 650, in set_value
648 data['%s' % self.id] = value
</pre>
Mais si c'est une chaine ça va itérer dessus avec succès et ça donnera l'impression de marcher sur des id à un chiffre, avant d'arriver à un résultat incompréhensible, trop tard. Il faudrait donc également lever SetValueError en cas de chaine (ça amènera rendra peut-être des explicite certaines erreurs sur certains sites, où ça marchait qui marchaient par hasard, il y aura à être attentif et faudra les corriger).
<pre>
Exception:
type = '<class 'TypeError'>', value = ''int' object is not iterable'
Stack trace (most recent call first):
File "…/wcs/wcs/fields.py", line 2483, in store_display_value
2481 return ''
2482 choices = []
> 2483 for choice in data.get(field_id) or []:
2484 if isinstance(options[0], str):
2485 choices.append(choice)
locals:
choices = []
data = {'520': 2}
field_id = '520'
options = [('1', 'Poussière', '1'), ('2', 'Réunions', '2'), ('3', 'MEP', '3')]
raise_on_error = False
self = <ItemsField 520 'Quelles sont les allergies de votre enfant ?'>
File "…/wcs/wcs/fields.py", line 650, in set_value
648 data['%s' % self.id] = value
</pre>
Mais si c'est une chaine ça va itérer dessus avec succès et ça donnera l'impression de marcher sur des id à un chiffre, avant d'arriver à un résultat incompréhensible, trop tard. Il faudrait donc également lever SetValueError en cas de chaine (ça amènera rendra peut-être des explicite certaines erreurs sur certains sites, où ça marchait qui marchaient par hasard, il y aura à être attentif et faudra les corriger).