Python 筛选时未返回DRF图像url

Python 筛选时未返回DRF图像url,python,django,django-models,django-rest-framework,Python,Django,Django Models,Django Rest Framework,如果我在序列化程序或视图中编写一些查询,它不会返回图像的url,而是返回/media/image.jpg,这是为什么 比如说 class GetWishlistSerializer(serializers.ModelSerializer): review = SerializerMethodField() product = CustomForeignKeyField(required=False, queryset=Product.objects.all()) cla

如果我在
序列化程序
视图
中编写一些查询,它不会返回图像的url,而是返回
/media/image.jpg
,这是为什么

比如说

class GetWishlistSerializer(serializers.ModelSerializer):
    review = SerializerMethodField()
    product = CustomForeignKeyField(required=False, queryset=Product.objects.all())

    class Meta:
        model = WishList
        fields = ['id', 'user','product', 'review']

    def get_review(self, obj):
        return Review.objects.filter(product_id=obj.product_id).count()
这不是返回图像的url,而是
/media/product\u images/image.png

过滤器如何影响图像url

class Product(models.Model):
    category = models.ForeignKey(Category, blank=True, null=True, on_delete=models.CASCADE)


class ProductImage(models.Model):
    image = models.ImageField(upload_to='products/%Y/%m/%d', blank=True, null=True)
    product = models.ForeignKey('Product', on_delete=models.CASCADE, related_name='images', null=True)
我希望我的输出像这样

"category":"category",
"images":[ 
   { 
      "id":1,
      "product":1,
      "image":"http://localhost:8000/media/products/2019/12/14/b_dfdfd_RT-53_K6340SL1.jpg"
   },
   { 
      "id":2,
      "product":1,
      "image":"http://localhost:8000/media/products/2019/12/14/dsdsfxd_RT-53_K6340SL2.jpg"
   }
]
这是一个模型,没有过滤,一切都很好,但是使用它就不起作用了


如何返回图像的url?

这会很神奇。我没有测试它。但它应该起作用

class ProductImageSerializer(serializers.ModelSerializer):
    image = serializers.ImageField(source='image.url', use_url=True)
    class Meta:
        model = ProductImage
        fields = ['id', 'product', 'image']


class ProductSerializer(serializers.ModelSerializer):
    category = serializers.CharField(source='category.name')
    images = ProductImageSerializer(source='images', many=True)

    class Meta:
        model = Product
        fields = ['category', 'images']

问题很清楚。您到底想要什么?如何返回图像的url?序列化中没有
image
字段。正如您从模型
ProductImage
中看到的那样,它存在于产品中,但您并不是这样得到它的。分享一个例子,你希望你的输出看起来如何,答案是它已经存在于我的序列化程序中。如果您注意到我没有在ProductSerializer中使用它,我想使用它GetWishlistSerializer,我的意思是当用户想要添加wishlist时,它应该返回产品的所有数据。它将返回所有数据和图像,但图像不会带有它返回的URL,如
/media/products/blablabla
。是否清楚?请尝试
ProductImageSerializer
中的
image=serializers.ImageField(source='image.url',use_url=True)
应该使用?是的,我使用了,但它返回了这个
图像:[{“id”:1,“product”:1,“image”:null}]
您应该有一个与记录关联的图像。