我需要保存FileField
对象的文件,该对象从表单中获取其名称和内容不(但是来自我的代码)。怎么样?
我需要类似的东西:
field = FileField()
...
save_under_name(field, name, content_bytes)
如何编写此函数save_under_name
?
此外,我需要获取已保存文件名的链接。
答案 0 :(得分:2)
嗯,您很可能需要使用FieldFile
对象,该对象定义FileField
的内容以保存文件。要创建FieldFile
,您可以在文件系统中使用文件描述符,也可以使用表示文件内容的字符串。 Django doc对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)