Django Rest Framework, фильтрация объектов на основе отношений Forignkey - PullRequest
0 голосов
/ 05 мая 2020

У меня есть простое приложение для блогов, где каждый может добавить сообщение и комментарий к сообщению . Комментарии имеют ключевое отношение к сообщению. Когда я выбираю патч URL posts/<post id>/comments, он показывает все комментарии вместо комментариев из связанных сообщений. Все остальные функции CRUD отлично работают с проектом.

Ссылка Git: https://github.com/Anoop-George/DjangoBlog.git

Проблема возникает в view.py, где объект комментария не может фильтровать комментарии, относящиеся к конкретным c сообщениям.

class CommentListCreate(APIView):
    def get(self, request,pk):
        **comment = Comment.objects.filter()** # I need filter here
        serializer = CommentSerializers(comment, many=True)
        return Response(serializer.data)   

1 Ответ

1 голос
/ 05 мая 2020

Прежде всего, не используйте пробелы в url argument или вообще в url. Патч URL должен быть posts/<int:post_id>/comments.

Теперь ваш вид класса выглядит так:

class CommentListCreate(APIView):
    def get(self, request, *args, **kwargs):
        id = kwargs.get("post_id", None)
        comment = Comment.objects.filter(post__id=id)
        serializer = CommentSerializers(comment, many=True)
        return Response(serializer.data)

У меня не было возможности проверить его, но я почти уверен, что он сработает.

...