Development #51484
filtre pour altérer le nom d'un fichier
0%
Description
Maintenant qu'on peut gérer les fichiers via les gabarits on pourrait avoir un filtre pour modifier le nom d'un fichier; ex: {{form_var_fichier|with_name:"plop.pdf"}}; ça pourrait être utile pour l'envoi vers des applications un peu limitées.
Fichiers
Révisions associées
Historique
Mis à jour par Benjamin Dauvergne il y a environ 3 ans
Ça ou un |simplify-filename
ou le faire automatiquement à l'upload; je ne sais pas si c'est vraiment si important qu'on conserver les noms des fichiers en dehors d'ASCII.
Mis à jour par Frédéric Péters il y a environ 3 ans
Et un n'acceptera pas les espaces, et l'autre les noms "trop longs", etc.
Mis à jour par Frédéric Péters il y a plus de 2 ans
- Fichier 0001-misc-add-rename_file-filter-51484.patch 0001-misc-add-rename_file-filter-51484.patch ajouté
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
{{form_var_file|rename_file:"foobar.jpeg"}}
mais aussi, si jamais on veut garder l'extension actuelle, la possibilité de faire |rename_file:"foobar.$ext" (j'ai hésite un moment à taper une syntaxe qui soit du gabarit django mais ça fait imbriquer du django dans du django et ça donnerait l'idée que tout est possible, genre |rename_file:"{{form_name}}" alors que non. Pour ce type d'usage, ça passera par un {% with ... %} autour, classique.
Mis à jour par Thomas Noël il y a plus de 2 ans
FileField.convert_value_from_anything(value) peut renvoyer un None (if not value), il faudrait au moins gérer ce cas "normal" et ajouter donc un "if not file_object: return None" juste après la conversion.
Pour le ".$ext" je suis pas super fan, mais la seule autre idée que j'ai est ".*" et je ne sais pas si elle est meilleure.
Mis à jour par Frédéric Péters il y a plus de 2 ans
Pour le ".$ext" je suis pas super fan, mais la seule autre idée que j'ai est ".*" et je ne sais pas si elle est meilleure.
Moi non plus et initialement je ne l'avais pas mais en pratique ça va totalement être nécessaire dès qu'un champ accepte différents types de fichiers; et ça fournit quand même un raccourci plus pratique qu'un {% with ... %} long compliqué peu lisible.
Mis à jour par Thomas Noël il y a plus de 2 ans
Frédéric Péters a écrit :
Pour le ".$ext" je suis pas super fan, mais la seule autre idée que j'ai est ".*" et je ne sais pas si elle est meilleure.
Moi non plus et initialement je ne l'avais pas mais en pratique ça va totalement être nécessaire dès qu'un champ accepte différents types de fichiers; et ça fournit quand même un raccourci plus pratique qu'un {% with ... %} long compliqué peu lisible.
Oui oui, c'est nécessaire, je trouvais juste le ".$ext" un peu étrange mais bon, c'est une convention et voilà, let's go pour ça.
Mis à jour par Frédéric Péters il y a plus de 2 ans
- Fichier 0001-misc-add-rename_file-filter-51484.patch 0001-misc-add-rename_file-filter-51484.patch ajouté
Voilà avec la gestion du cas où on récupererait None (+ le test adéquat).
Mis à jour par Emmanuel Cazenave il y a plus de 2 ans
- Statut changé de Solution proposée à Solution validée
Mis à jour par Frédéric Péters il y a plus de 2 ans
- Statut changé de Solution validée à Résolu (à déployer)
commit fbda3524216b90ba947ff2557d4bfb511774ba9f Author: Frédéric Péters <fpeters@entrouvert.com> Date: Mon Aug 16 13:46:56 2021 +0200 misc: add |rename_file filter (#51484)
Mis à jour par Frédéric Péters il y a plus de 2 ans
- Statut changé de Résolu (à déployer) à Solution déployée
misc: add |rename_file filter (#51484)