Django la validation du formulaire, clean(), et le fichier de téléchargement
Quelqu'un peut-il m'éclairer précisément quand un fichier téléchargé est en fait écrit à l'emplacement retourné par "upload_to" dans le FileField, en particulier en ce qui concerne la commande de champ, le modèle, et de la validation du formulaire et le nettoyage?
Droit maintenant, j'ai un "nettoyage" de la méthode sur mon modèle qui suppose que le fichier téléchargé est en place, donc il peut faire la validation de certains. On dirait que le dossier n'est pas encore sauvé, et peut être tenue dans un emplacement temporaire ou dans la mémoire. Si c'est le cas, comment puis-je "ouvrir" ou de trouver un chemin si j'en ai besoin pour exécuter certains processus externe/programme pour valider le fichier?
Merci,
Ian
OriginalL'auteur IanSR | 2011-02-17
Vous devez vous connecter pour publier un commentaire.
La forme de nettoyage n'a rien à voir avec le fait d'enregistrer le fichier, ou avec l'enregistrement de toutes autres données pour cette question. Le fichier n'est pas enregistré jusqu'à ce que vous exécutez la méthode save() de l'instance du modèle (notez que si vous utilisez ModelName.objets.créer() cette méthode save() est appelée automatiquement pour vous).
La forme liée contiendra un Fichier ouvert, donc vous devriez être en mesure de faire une validation sur l'objet directement. Par exemple:
d'où ce code?
OriginalL'auteur danny
Quoi avez-vous besoin de faire? Si votre validation de travail sans un fichier temporaire, vous pouvez accéder aux données en appelant
read()
sur ce que votre fichier champ retourne.Si vous avez besoin d'elle sur le disque, vous savez où aller à partir d'ici 🙂 écrire à un emplacement temporaire et de faire de la magie sur elle!
Attendre, tant pis, je me souviens avoir lu un post sur la façon de le faire.. laissez-moi aller creuser. Désolé peut pas le trouver. Si le modèle est enregistré déjà vous pouviez accéder
self.field.file.read()
OriginalL'auteur Yuji 'Tomita' Tomita
Ou de l'écrire comme un champ de formulaire personnalisé. C'est l'idée de base de la façon dont je vais sur la vérification d'un fichier MP3 à l'aide de la "mutagène " bibliothèque".
Notes:
Le code:
OriginalL'auteur samzor