0
votes

Impossible de lire Django Filefield?

J'essaie de lire depuis django Filefield , comme on peut le voir dans mon modèle Django: xxx

mais OS.PATH.FILE () continue de retourner faux . Comment puis-je lire depuis Filefield dans mon modèle personnalisé?

et de plus, la ligne fixetinfo , me donne l'erreur:

pywintypes.error: (2, 'getfileversionInfo: getfileversionInfosize', 'Le système ne peut pas trouver le fichier spécifié.')


4 commentaires

Quelle est la valeur de str (fichier.file) ?


Les imprimer me ont donné: Champ de fichier: Type de champ de fichier:


Qu'est-ce que c'est? Custom.Storage Importation AzuremediaStorage ?


C'est pour définir mon stockage personnalisé (azur). Je stocke les fichiers dans Blob Stockage sur Azure !!


3 Réponses :


0
votes

OS.PATH.FILE Retourne si le fichier FilePath indique un fichier (par opposition à un répertoire, par exemple). fichier.file est pointé vers un Modèles.FileField objet; Le code actuel retournera toujours faux . Je suppose que vous voudriez que vous voudriez fichier.file.path pour obtenir le fichier de fichier absolu réel pour le fichier.


1 commentaires

Hé!! Quand j'essaye file.file.Path, je reçois l'erreur: AttributeError: "L'objet FileDescriptor" n'a aucun attribut 'chemin' '



0
votes

Dans votre définition de modèle, vous pouvez ajouter: xxx

ou vous pouvez essayer:

de django.core.files.storage Importation par défaut_storage

Utiliser: 1) Fieldfile.name:

p> Nom du fichier, y compris le chemin relatif de la racine du stockage du champ de stockage associé.

2) par défaut_storage.exists (chemin)

retour vrai si un fichier référencé par le nom donné existe déjà dans le Système de stockage, ou FALSE si le nom est disponible pour un nouveau fichier.

espère que cela fonctionne!


3 commentaires

Hé! Je continue à obtenir l'erreur du fichier non trouvé. En outre, impression fichier.file_name renvoie: File_Name Champ: Nom du fichier Type:


Ce que vous voulez probablement, c'est os.path.join (paramètres.media_root, self.file.name)


@Abhishek à l'aide de par défaut_storage.exists (chemin) donne l'erreur: AttributeError: l'objet "DeferreDattribute" n'a aucun attribut "remplacer". (Cela peut être mieux compris, en référence à l'erreur dans mon commentaire ci-dessus)



0
votes

Lorsque vous utilisez un fournisseur de stockage différent pour vos fichiers, vous devez utiliser les méthodes de ce fournisseur de stockage pour interroger l'objet de fichier.

os.path.fislile et win32api.getfileverioninfo ne fonctionne que pour le système de fichiers local.


1 commentaires

Je soupçonnai cela, mais merci d'avoir souligné. Mais j'ai configuré Django pour communiquer avec Azure. Alors, comment devrais-je continuer à résoudre ce problème?