django使用JSON上传文件
我有这样的JSON请求:django使用JSON上传文件,json,django,file,save,Json,Django,File,Save,我有这样的JSON请求: 对象:{“字段”:{“src”:http://dss.com/a.jpg“,“数据”:“//文件在这里”} 我有这样的模型: class FileMy(models.Model): f=models.FileField(上传到class='file\u path/',) 如何保存文件?您可以使用urllib读取文件,然后将其添加到模型中 请看这篇文章: 您可以将数据包装在一个从文件继承的文件中,然后将文件直接保存到模型中 from __future__ import u
对象:{“字段”:{“src”:http://dss.com/a.jpg“,“数据”:“//文件在这里”}
我有这样的模型:
class FileMy(models.Model):
f=models.FileField(上传到class='file\u path/',)
如何保存文件?您可以使用urllib读取文件,然后将其添加到模型中 请看这篇文章:
您可以将数据包装在一个从文件继承的文件中,然后将文件直接保存到模型中
from __future__ import unicode_literals
from django.core.files.base import ContentFile
from .models import FileMy
f1 = ContentFile("esta sentencia está en español")
f2 = ContentFile(b"these are bytes")
m1 = FileMy()
m2 = FileMy()
m1.f.save("filename", f1, save=True)
m2.f.save("filename", f2, save=True)
首先,对json请求体中的原始数据进行编码
from tempfile import NamedTemporaryFile
from django.core.files import File
def save_file_to_field(field, file_name, raw_content):
# field: reference to the model object instance field
img_temp = NamedTemporaryFile(delete=True)
img_temp.write(raw_content)
field.save(
file_name,
File(img_temp)
)
img_temp.flush()
这是做什么的:
- 在系统上创建保存数据的临时文件
- 使用文件字段保存方法触发常规文件处理
- 删除临时文件