Development #43502
utils.attachment() a des effets de bord désormais...
0%
Description
Jusqu'à #41679, wcs.qommon.evalutils.attachment() se contentait de produire un JSON typique pour une pièce jointe {filename,content_type,b64_content}
sans rien faire d'autre. Désormais il retourne un objet du type Upload constuit par FileField.convert_value_from_anything() ce qui ne me semble pas problématique et permet de passer plus de types différents via content
; par contre ça appelle UploadStorage.save(upload)
ce qui crée des fichiers uploads orphelins lorsqu'on s'en sert simplement pour changer le nom du fichier uploadé d'un web-service (et là vous me direz peut-être qu'il vaut mieux reconstruire complètement le JSON via PicklableUpload.get_base64_content())@.
Ceci étant dit et fait, je pencherai pour une alternative, avoir sur LazyFieldVarFile une méthode .as_filename(filename, [content_type=None])
qui créerait simplement un PicklableUpload en changeant orig_filename
et déprécier utils.attachment()
pour son usage original (pour lequel il fonctionne toujours bien sûr).
Après s'il y a toujours dans les cartons le fait de pouvoir utiliser les champs fichiers dans les gabarits ça pourrait être aussi un template filter |as-filename:"new-filename"
qui ferait la même chose.
Historique
Mis à jour par Frédéric Péters il y a presque 2 ans
- Statut changé de Nouveau à Fermé
Le seul problème est le stockage temporaire mais il y a nettoyage automatique des fichiers orphelins, pas un vrai problème donc.