Projet

Général

Profil

Development #51484

filtre pour altérer le nom d'un fichier

Ajouté par Frédéric Péters il y a environ 3 ans. Mis à jour il y a plus de 2 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
26 février 2021
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

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

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

misc: add |rename_file filter (#51484)

Historique

#2

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.

#3

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.

#7

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

  • Assigné à mis à Frédéric Péters
#8

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

{{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.

#9

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.

#10

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.

#11

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.

#12

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

Voilà avec la gestion du cas où on récupererait None (+ le test adéquat).

#13

Mis à jour par Emmanuel Cazenave il y a plus de 2 ans

  • Statut changé de Solution proposée à Solution validée
#14

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

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

Formats disponibles : Atom PDF