J'ai un modèle, avec modèles.py: strong> p> formulaires.py: strong> p> Filefield code>. Lorsque je modifierai ce modèle dans une vue, je veux modifier la valeur "actuelle" de
Filefield code> qui est affichée dans le formulaire de vue. Laissez-moi vous expliquer.
Welcome sound: Currently: welcome_files/2011/04/27/15_35_58_ojCompany.wav.mp3
Change : <Choose File button>
4 Réponses :
Un moyen de le faire, serait d'écrire un widget de formulaire personnalisé et de remplacer la méthode de rendu. P>
Vous devez remplacer le fichier ClearAdableInput actuellement utilisé, pour modifier la manière dont il est affiché.
Voici le code du nouveau Pour l'utiliser dans votre formulaire, vous devrez définir manuellement le widget que vous voulez à utiliser: p> qui devrait faire le tour. p> p> shortNameFileInput code> qui hérite de la valeur par défaut
EffectableFileInput Code> avec juste une modification de la 19ème ligne pour afficher uniquement le nom du fichier: p>
Pourquoi ne puis-je pas dériver du fichierInput au lieu de ClearableFileInput?
Si vous voulez un moyen plus facile et évitez de réécrire la logique de rendu du widget, vous pouvez faire un petit piratage.
class DemoVar_addform(ModelForm): class Meta: model = DemoVar_model widgets = { 'Welcome_sound': ClearableFileInput, }
C'est une approche beaucoup plus propre que la réponse acceptée et n'entraîne aucune duplication de code inutile.
Le moyen le plus simple consiste à remplacer le puis utilisez le widget dans formulaires.py strong> comme suit: p> Vérifiez imagefield / Filefield Django Formulaire actuellement incapable couper le chemin du nom de fichier . p> h1> template_substitut_values code> dans défaut
ClearableFileInput CODE> DJANGO Widget qui sera utilisé plus tard pour rendant la forme. C'est une approche beaucoup plus propre qui n'entraîne aucune duplication de code inutile. p>
J'ai essayé cela, mais rien n'arrive à "actuellement" pour couper le fichier Filpath. J'ai posé ma question ici: Stackoverflow.com/Questtions/47887158/... @DHIATN