python - example - filefield django
¿Cómo asignar un archivo local al FileField en Django? (1)
Estaba intentando asignar un archivo de mi disco al FileField, pero tengo este error:
AttributeError: el objeto ''str'' no tiene ningún atributo ''abierto''
Mi código python:
pdfImage = FileSaver()
pdfImage.myfile.save(''new'', open(''mytest.pdf'').read())
y mis modelos.py
class FileSaver(models.Model):
myfile = models.FileField(upload_to="files/")
class Meta:
managed=False
Gracias de antemano por su ayuda
Django usa su propio tipo de archivo (con una funcionalidad mejorada a la vista). De todos modos, el tipo de archivo de Django funciona como un decorator , por lo que simplemente puede envolverlo alrededor de los objetos de archivos 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))`.