Перечисление поля objects вместо Object в 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
И вот если кому-то нравится продукт, он добавляет его в избранное, то в базе данных создается объект Like. И я хочу создать конечную точку 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))
и вы можете использовать стандартный сериализатор товаров