Django Rest Framework:使用ImageField更新模型而不更新图像

时间:2014-02-21 21:11:06

标签: django django-rest-framework

使用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')

如何在不重新提交文件的情况下更新模型?

2 个答案:

答案 0 :(得分:3)

Django REST允许提交部分PATCH个请求(docs)。只需确保使用UpdateAPIView(或其变体)即可自动允许此操作。部分更新的想法是,它们不要求您提交将完成您所需行为的所有模型字段。

答案 1 :(得分:0)

我遇到了与FileField相同的问题。我不得不删除PUT请求中的FileField属性,以便它不会覆盖存储的值。只需确保Model上的blank = True,这样它就是一个可选字段。我正在使用DRF 2.4.4。