¿Cómo asignar un archivo local al campo de archivos en Django?
Estaba tratando de asignar un archivo de mi disco al campo de archivos, pero tengo este error:
AttributeError: el objeto' str 'no tiene atributo'open'
Mi código python:
pdfImage = FileSaver()
pdfImage.myfile.save('new', open('mytest.pdf').read())
Y mi models.py
class FileSaver(models.Model):
myfile = models.FileField(upload_to="files/")
class Meta:
managed=False
Gracias de antemano por su ayuda
23
1 answers
Django usa su propio tipo de archivo (con una funcionalidad mejorada de sightly). De todos modos, el tipo de archivo de Django funciona como un decorador , por lo que simplemente puede envolverlo alrededor de objetos de archivo existentes para satisfacer las necesidades de la API de Django.
from django.core.files import File
local_file = open('mytest.pdf')
djangofile = File(local_file)
pdfImage.myfile.save('new', djangofile)
local_file.close()
Por supuesto, puede decorar el archivo sobre la marcha escribiendo lo siguiente (una línea menos):
pdfImage.myfile.save('new', File(local_file))`.
34
Author: tux21b,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-07-22 20:15:56
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-07-22 20:15:56