【发布时间】:2021-04-10 15:05:45
【问题描述】:
我尝试测试 mp3 修改(因此 PUT)。到目前为止,我有以下内容:
client = Client()
with open('my_modified_audio.mp3', 'rb') as fp:
response = client.put(
f"/resource/{resource_id}/",
data={'audio': fp})
但是,我得到 response.status_code == 415,因为 DRF 的 ModelViewSet 中的序列化程序行serializer = self.get_serializer(instance, data=request.data, partial=partial)。
失败 rest_framework.exceptions.UnsupportedMediaType: Unsupported media type "application/octet-stream" in request.
我尝试设置format="multipart",将内容类型设置为json 或form-encoded,到目前为止没有任何帮助。 Resource 模型使用 FileField:
class Resource(models.Model):
audio = models.FileField(upload_to='uploads')
我怎样才能使这个 put 请求工作?
【问题讨论】:
标签: django django-rest-framework django-testing django-tests