Comment affecter un fichier local au FileField à Django?
j'ai essayé d'assigner un fichier de mon disque à la FileField, mais j'ai cette erreur:
AttributeError: 'str' object n'a pas d'attribut "ouvrir"
mon code python:
pdfImage = FileSaver()
pdfImage.myfile.save('new', open('mytest.pdf').read())
<!-Et mon models.py
class FileSaver(models.Model):
myfile = models.FileField(upload_to="files/")
class Meta:
managed=False
je vous Remercie d'avance pour votre aide
23
demandé sur
Leodom
2010-08-17 14:48:36
1 réponses
Django utilise son propre type de fichier (avec une fonctionnalité légèrement améliorée). Quoi qu'il en soit, le type de fichier de Django fonctionne comme un décorateur, de sorte que vous pouvez simplement l'enrouler autour des objets de fichier existants pour répondre aux besoins de L'API Django.
from django.core.files import File
local_file = open('mytest.pdf')
djangofile = File(local_file)
pdfImage.myfile.save('new', djangofile)
local_file.close()
vous pouvez bien sûr décorer le fichier à la volée en écrivant ce qui suit (une ligne de moins):
pdfImage.myfile.save('new', File(local_file))`.
34
répondu
tux21b
2016-07-22 20:15:56