por*_*ton 2 python django django-models
我需要为一个FileField对象保存文件,该对象不是从表单(而是从我的代码)获取其名称和内容。如何?
我需要类似的东西:
field = FileField()
...
save_under_name(field, name, content_bytes)
Run Code Online (Sandbox Code Playgroud)
这个函数怎么写save_under_name?
我还需要获取保存文件名的链接。
好吧,您很可能需要使用FieldFile对象,它定义了FileField保存文件的内容。要制作FieldFile,您可以使用文件系统中的文件描述符或表示文件内容的字符串。Django doc 对field.save()方法有很好的解释,引用:
Run Code Online (Sandbox Code Playgroud)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)或者
Run Code Online (Sandbox Code Playgroud)from django.core.files.base import ContentFile myfile = ContentFile("hello world")
然后做
obj.field.save('filename', myfile)
Run Code Online (Sandbox Code Playgroud)