drf序列器将ImageField 字段url路径弄错
在image.url
已经是一个完整的url情况下,使用序列化器的ImageField
字段还会再转一边绝对路径,导致路径错误。
class GoodsListSerializer(ModelSerializer):
class Meta:
model = SKU
fields = ['id', 'default_image', 'name', 'price']
class SkuListView(ListAPIView):
queryset = SKU.objects.all()
serializer_class = GoodsListSerializer
![](/media/upload/bc47d8402b6f47438b744b3cf28a4669.png)
可以自定义一个方法获取返回值。
class GoodsListSerializer(ModelSerializer):
default_image = serializers.SerializerMethodField()
class Meta:
model = SKU
fields = ['id', 'default_image', 'name', 'price']
def get_default_image(self, obj):
return obj.default_image.url
![](/media/upload/4096ced7481246229350d14754dfab7b.png)
但是我发现使用APIView
即使不做任何处理,也能够正确返回。
class GoodsListSerializer(ModelSerializer):
class Meta:
model = SKU
fields = ['id', 'default_image', 'name', 'price']
class SkuListView(APIView):
def get(self,request):
queryset = SKU.objects.all()
serializer_class = GoodsListSerializer(instance=queryset,many=True)
return Response(serializer_class.data)
![](/media/upload/08c4b56cc7d24bbc800d4bd2ddcbf1b8.png)
只有用GenericAPIView
类和他的子类才有这个问题。真奇怪,纠结了我两个小时。
以后遇到问题解决了就绝不纠结原因了。
如果文章对你有帮助!可点击按钮打赏哦 ~
发表评论
共 0 条评论
暂无评论