Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为不带表单的文件字段保存文件_Python_Django_Django Models - Fatal编程技术网

Python 为不带表单的文件字段保存文件

Python 为不带表单的文件字段保存文件,python,django,django-models,Python,Django,Django Models,我需要为FileField对象保存文件,该对象不是从表单(而是从我的代码)获取其名称和内容。怎么做 我需要像这样的东西: field = FileField() ... save_under_name(field, name, content_bytes) 如何编写此函数在\u名称下保存\u 我还需要获得保存文件名的链接。好的,您很可能需要使用FieldFile对象,该对象定义FileField的内容来保存文件。要创建字段文件,可以在文件系统中使用文件描述符或表示文件内容的字符串。Django

我需要为
FileField
对象保存文件,该对象不是从表单(而是从我的代码)获取其名称和内容。怎么做

我需要像这样的东西:

field = FileField()
...
save_under_name(field, name, content_bytes)
如何编写此函数
在\u名称下保存\u


我还需要获得保存文件名的链接。

好的,您很可能需要使用
FieldFile
对象,该对象定义
FileField
的内容来保存文件。要创建
字段文件
,可以在文件系统中使用文件描述符或表示文件内容的字符串。Django doc对
field.save()
方法有很好的解释,引用:

from django.core.files.base import ContentFile
myfile = ContentFile("hello world")
那就做吧

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

.

据我所知,您可以在模型中覆盖save方法,然后在保存之前更改记录中的值。如果需要填充两个文件字段,该怎么办?我发现了解决方案:FieldFile.save有一个
save
参数,默认为
True
。将其设置为
False
,分配完文件后,可以使用
obj.save()
保存整个对象。
obj.field.save('filename', myfile)