example python django filefield

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))`.