【发布时间】:2020-08-12 18:01:06
【问题描述】:
我正在使用 Django 中的 ImageField 上传图像。当我获取要在前端显示的数据时将图像保存在数据库中后,我以以下格式获取它:
{"pk":5,"employee_image":"/media/emp_temp_mast/5.png","first_name":"TEST",}
在前端更改数据后,我在表单中为相应条目发送 PUT 请求:
{"pk":5,"employee_image":"/media/emp_temp_mast/5.png","first_name":"DATA CHANGED",}
但是在发出请求后我收到以下错误:
employee_image: ["The submitted data was not a file. Check the encoding type on the form."]
我应该如何从前端调用 PUT 请求。
【问题讨论】:
-
如果您只想更改不包含实际
employee_image字段的数据的部分,则使用PATCH方法并且根本不包含您不想更新的字段:fetch('https://foo.bar/Baz/', { method: 'PATCH', body: '{"pk":5, "first_name": "DATA CHANGED"}')。 -
这只是一个例子,在这种情况下我需要发出一个put请求。需要将数据添加到重复表中并从此处删除
-
我的问题基本上是从数据库中获取数据后对图像字段进行 PUT 请求的最有效方法是什么?
-
核对发送 JSON 的
ImageField并使用所有其他字段。然后做一个PATCH。例如let send_data = {...data}; delete send_data['employee_image']; fetch([...]method:'PATCH')
标签: django django-rest-framework put