使用对象ID获取完整的URL图像 - Django Rest Framework

时间:2018-01-03 18:04:55

标签: python django django-rest-framework

我在Django Rest Framework中编写了一个关于Profile Avatar Image的串行器,但我希望得到完整的URL Image而不是ID。

我的序列化程序(返回profile_pic_url是ID):

class ProfileDetailSerializer(ModelSerializer):
    profile_pic_url = SerializerMethodField()
    class Meta:
        model = Profile
        fields = [
            'profile_pic_url',
        ]

    def get_profile_pic_url(self, obj):
        request = self.context.get('request')
        profile_pic_url = obj.profile_pic_url.image
        return request.build_absolute_uri(profile_pic_url)

此代码返回此问题:

'ImageFieldFile' object has no attribute 'find'

1 个答案:

答案 0 :(得分:3)

您需要提供build_absolute_uri图片网址,但不提供ImageField本身:

return request.build_absolute_uri(profile_pic_url.url)