Dans mon application django, j'ai un enregistrement multi-étapes, avec peu de paramètres conditionnels. Pour cette raison, j'ai pensé à stocker des données à partir de formulaires en session. Malheureusement, les sessions sérialisent les données à l'aide de pickle, qui ne prend pas en charge la sérialisation des fichiers et provoque
PicklingError: Can't pickle <type 'cStringIO.StringO'>: attribute lookup cStringIO.StringO failed
. Comment contourner ce problème? Dois-je envoyer une image en tant que variable à toutes les vues suivantes, ou l'envoyer en tant que paramètre GET ou le faire d'une autre manière? Je ne suis pas sûr si un exemple de code est nécessaire puisque les problèmes semblent assez clairs.Comment traiter le stockage temporaire des fichiers téléchargés
3
A
Répondre
1
Si les fichiers en cours de téléchargement ont une taille supérieure à quelques Ko, vous ne souhaitez probablement pas les stocker dans la session (et vous ne voulez certainement pas les renvoyer au navigateur via un OBTENIR).
je peux penser à quelques options:
- Vous pouvez réécrire votre formulaire d'inscription afin que les fichiers téléchargés viennent en dernier.
- Vous pouvez faire votre formulaire en une seule étape, et simuler la multi-étape avec javascript (en cachant et en montrant DIV, par exemple).
- Vous pouvez conserver les fichiers temporaires sur le disque, et stocker les noms de fichiers dans la session (n'oubliez pas de nettoyer régulièrement les anciens fichiers)
- Vous pouvez simplifier votre inscription et faire le téléchargement de fichiers sur une page "profil" (peut-être appliquer une exigence «vous devez remplir le profil» avant de permettre l'accès au reste du site).
Questions connexes
- 1. Stockage des fichiers téléchargés en Java
- 2. Stockage Azure: fichiers téléchargés avec des octets de taille zéro
- 3. Re: Enregistrement des fichiers téléchargés dans MyDocuments
- 4. Comment utiliser correctement le stockage temporaire dans l'application
- 5. Comment définir le dossier des fichiers téléchargés pour SWFUpload?
- 6. Comment traiter les éléments téléchargés via un contrôle WebBrowser?
- 7. catégoriser les fichiers téléchargés
- 8. Stockage temporaire dans l'extension FireFox
- 9. Utilisation de la session pour stocker les fichiers téléchargés
- 10. Renommer des fichiers téléchargés avec Carrierwave
- 11. Modifiez le mode d'affichage des fichiers téléchargés sur Drupal
- 12. Analyse des fichiers téléchargés avec Antivirus SDK
- 13. Stockage de fichiers au printemps
- 14. Meilleures pratiques pour stocker les fichiers téléchargés dans le système de fichiers
- 15. Android Stockage des fichiers AV
- 16. Rendre les fichiers téléchargés sur s3 public
- 17. se déplacer autour des fichiers téléchargés dans PHP
- 18. Suppression des fichiers téléchargés de Google à l'expiration de l'article
- 19. Problème lors de l'enregistrement des fichiers téléchargés dans Python3
- 20. JAVA: multiples fichiers téléchargés en même temps?
- 21. Stockage temporaire pour les données nettoyées dans Integration Services
- 22. MongoDB GridFS pour le stockage de fichiers HA
- 23. HTTP fichiers POSTé automatiquement dans le répertoire téléchargés racine
- 24. Comment traiter des fichiers spécifiques et les lier?
- 25. Où stocker les fichiers téléchargés (son, images et vidéo)
- 26. comment lire les fichiers téléchargés à partir xampp
- 27. Pouvez-vous mettre des autorisations sur le stockage de fichiers S3?
- 28. Conseils sur le stockage de fichiers Android
- 29. Comment traiter les fichiers objets git corrompus?
- 30. Stockage de fichiers dans un stockage isolé
Je suis plus intéressé par la troisième méthode, je suppose que depuis ce que je sais, django par lui-même stocker tous les fichiers dans temp. Mais comment puis-je stocker uniquement le chemin vers le fichier et non le fichier lui-même? Mon débogage montre que ImageFileField envoie un objet fichier, pas seulement un chemin de chaîne. –