在 Django Rest Framework 中列出 objects 字段而不是 Object

Listing objects field instead of Object in Django Rest Framework

我有一个模型

class Like(models.Model):
    product = models.ForeignKey('ProductInStore', on_delete=models.PROTECT)
    user = models.ForeignKey('users.CustomUser', on_delete=models.PROTECT)

    class Meta:
        unique_together = ('product', 'user',)

和一个序列化程序

class LikeSerializer(serializers.ModelSerializer):
    user = serializers.PrimaryKeyRelatedField(read_only=True, default=serializers.CurrentUserDefault())
    product = serializers.PrimaryKeyRelatedField(read_only=True)

    class Meta:
        model = Like
        fields = ('user', 'product',)

class UserLikedProductsApiList(generics.ListAPIView):
    queryset = Like.objects.all()
    serializer_class = LikeSerializer

因此,如果有人喜欢某个产品,将其添加到收藏夹,它会在数据库中创建一个赞 object。我想创建一个端点 users/me/likedProducts,以便我可以列出 self.user.request 喜欢的所有产品。意思是所有 Like 实例,而不是 Like 实例,我只想显示 Like.product 个实例。假设一个人 x 喜欢 4 个项目,我只想在该列表中显示 4 个项目。您知道如何在 Django Rest Framework 中解决这个问题吗?

您可以将查询集从 like 模型更改为 ProductInStore 模型 查询看起来像这样: ProductInStore.objects.filter(id__in=Like.objects.filter(user=self.request.user).values_list('product',flat_true)) 你可以使用默认的产品序列化器