2017-01-04 39 views
0

我需要将文件保存为FileField对象,该对象的名称和内容而不是从表单(但是来自我的代码)。怎么样?将文件保存为不带表单的

我需要这样的东西:

field = FileField() 
... 
save_under_name(field, name, content_bytes) 

如何写这个功能save_under_name

另外我需要获取保存的文件名的链接。

+0

据我记得,你可以覆盖模型中的保存方法,然后在保存之前更改记录中的值 – MikeVelazco

回答

2

那么,你很可能需要使用FieldFile对象,它定义了一个FileField保存文件的内容。要制作FieldFile,您可以在文件系统中使用文件描述符,也可以使用表示文件内容的字符串。 Django的文档具有很好的解释约field.save()方法,引用:

from django.core.files import File 
# Open an existing file using Python's built-in open() 
f = open('/path/to/hello.world') 
myfile = File(f) 

from django.core.files.base import ContentFile 
myfile = ContentFile("hello world") 

然后做

obj.field.save('filename', myfile) 

Django doc says it all