Je tente de créer un custom file storage class pour mon application Django qui enregistre de manière transparente un hachage de tous les fichiers enregistrés.Impossible de lire Django FieldFile dans un stockage personnalisé
Ma classe de stockage de test est assez trivial:
from django.core.files.storage import Storage
from django.db.models.fields.files import FieldFile
from utils import get_text_hash
class MyStorage(Storage)
def _save(self, name, content):
if isinstance(content, FieldFile):
raw_content = content.open().read()
else:
raw_content = content
assert isinstance(raw_content, basestring)
print(get_text_hash(raw_content))
return super(MyStorage, self)._save(name, content)
Cependant, quand je tente de sauvegarder un fichier dans mon application, je reçois l'erreur:
'NoneType' object has no attribute 'read'
avec le retraçage se terminant le ligne:
raw_content = content.open().read()
Pourquoi open()
retour Aucun au lieu d'un descripteur de fichier? Quelle est la bonne façon d'accéder à votre contenu de fichier brut dans une classe de stockage Django?