Drf: Получение связанных сообщений по категории ManyToMany и полю тегов

Я пытаюсь получить все связанные сообщения, получая id текущего сообщения и фильтруя через БД, чтобы найти сообщения, которые находятся в похожей категории или имеют похожие теги.

это модель для постов:

class Post(models.Model):
    ....
    author = models.ForeignKey(
        "users.User", on_delete=models.CASCADE, related_name='blog_posts')
    tags = TaggableManager()
    categories = models.ManyToManyField(
        'Category')
    ....
    status = models.IntegerField(choices=blog_STATUS, default=0)

    def __str__(self):
        return self.title

это файл views.py:

class RelatedPostsListAPIView(generics.ListAPIView):
    serializer_class = PostsSerializer
    queryset = BlogPost.objects.filter(
        status=1)[:5]
    model = BlogPost

    def get(self, pk):
        post = self.get_object(pk)
        qs = super().get_queryset()
        qs = qs.filter(
            Q(categories__in=post.categories.all()) |
            Q(tags__in=post.tags.all())
        )
        return qs

с этим кодом я получаю ошибку RelatedPostsListAPIView.get() got multiple values for argument 'pk', я не думаю, что я действительно получаю объект с id, любая помощь будет очень признательна.

Вы также должны захватить request в get(), поэтому измените:

class RelatedPostsListAPIView(generics.ListAPIView):
    def get(self, pk):
        # ...

to:

class RelatedPostsListAPIView(generics.ListAPIView):
    def get(self, request, pk):
        #         ^^^ Add this
Вернуться на верх