Django空白FileField如何序列化而不会出错

时间:2018-06-14 20:43:50

标签: django django-models django-serializer

我有一个在我的模型中定义的文件字段,如下所示:

class Profile(models.Model):
    ...
    profile_picture = models.FileField(blank=True)

然后,我有一个像这样的JSON视图:

from django.forms.models import model_to_dict

class ProfileView(APIView):
    def get(self, request, format='json'):
        profile = ...
        profile_serialized = model_to_dict(profile)
        return Response(profile_serialized, status=status.HTTP_200_OK)

我正在使用DRF,但DRF不是我关注的问题。 model_to_dict将模型转换为字典,因此我可以将其输出为JSON。但是,我一直收到验证错误:

  

ValueError:'profile_picture'属性没有与之关联的文件。

如果字段为空,则无法对其进行序列化。我该如何解决这个问题呢?我应该在进行检查的模型中创建@property函数,还是有更好的方法?

谢谢!

1 个答案:

答案 0 :(得分:0)

我最终使用的是DRF Serializers而不是model_to_dict,一切正常。