使用Django Rest Framework我试图用图像字段更新模型。当我尝试更新模型上的其他字段时,我收到此错误:
{"image": ["No file was submitted. Check the encoding type on the form."]}
以下是串行器的简单概念。它在GET调用时返回的图像字段只有文件名。
class ModelWithImageSerializer(serializers.ModelSerializer):
image = serializers.ImageField('image', required=False)
class Meta:
model = models.Level
fields = ('id','name', 'image')
如何在不重新提交文件的情况下更新模型?
答案 0 :(得分:3)
Django REST允许提交部分PATCH
个请求(docs)。只需确保使用UpdateAPIView
(或其变体)即可自动允许此操作。部分更新的想法是,它们不要求您提交将完成您所需行为的所有模型字段。
答案 1 :(得分:0)
我遇到了与FileField相同的问题。我不得不删除PUT请求中的FileField属性,以便它不会覆盖存储的值。只需确保Model上的blank = True,这样它就是一个可选字段。我正在使用DRF 2.4.4。