如何获得与 django Rest Framework 中的帖子相对应的评论?

我将创建一个 API,当我向路由器发送请求并将评论附加到帖子的 pk 值时,它只会显示帖子中的评论。所以网址如下。写完py和views.py后,发送请求,出现404错误。如何通过编写 API 来获取评论?这是我制作的代码。


urls.py


urlpatterns = [

    path('post', CreateReadPostView.as_view({'post': 'create', 'get': 'list'})),

    path('post/<int:pk>', UpdateDeletePostView.as_view({'put': 'update', 'patch': 'partial_update', 'delete': 'destroy'})),

    path('post/<int:post.pk>/comments', CreateReadCommentView.as_view({'post': 'create', 'get': 'list'})),

] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

views.py


class CreateReadCommentView (ModelViewSet) :

    serializer_class = CommentSerializer

    permission_classes = [IsAuthenticated]

    queryset = Comment.objects.all()


    def perform_create (self, serializer) :

        serializer.save(author=self.request.user)


凤凰求蛊
浏览 109回答 1
1回答

泛舟湖上清波郎朗

您可以重写该get_queryset()方法。models.pyclass Post(models.Model):&nbsp; &nbsp; ...class Comment(models.Model):&nbsp; &nbsp; post = models.ForeignKey(Post, on_delete=models.CASCADE)&nbsp; &nbsp; ...urls.pyurlpatterns = [&nbsp; &nbsp; ...&nbsp; &nbsp; path('post/<int:post_id>/comments', CreateReadCommentView.as_view({'post': 'create', 'get': 'list'})),]views.pyclass CreateReadCommentView (ModelViewSet):&nbsp; &nbsp; serializer_class = CommentSerializer&nbsp; &nbsp; permission_classes = [IsAuthenticated]&nbsp; &nbsp; queryset = Comment.objects.all()&nbsp; &nbsp; def perform_create(self, serializer):&nbsp; &nbsp; &nbsp; &nbsp; serializer.save(author=self.request.user)&nbsp; &nbsp; def get_queryset(self):&nbsp; &nbsp; &nbsp; &nbsp; return super().get_queryset().filter(post=self.kwargs.get('post_id'))
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python