Python 如何获得与django rest框架中的帖子相对应的注释?
我将制作一个API,当我向路由器发送一个请求,并将注释附加到帖子的pk值时,它只显示帖子的注释。所以URL如下所示。在编写py和views.py之后,我发送了请求,出现了404错误。如何通过编写API获得注释?这是我写的代码 url.pyPython 如何获得与django rest框架中的帖子相对应的注释?,python,django,django-rest-framework,Python,Django,Django Rest Framework,我将制作一个API,当我向路由器发送一个请求,并将注释附加到帖子的pk值时,它只显示帖子的注释。所以URL如下所示。在编写py和views.py之后,我发送了请求,出现了404错误。如何通过编写API获得注释?这是我写的代码 url.py urlpatterns = [ path('post', CreateReadPostView.as_view({'post': 'create', 'get': 'list'})), path('post/<int:pk>', U
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)
您可以重写
get\u queryset()
方法
型号.py
class Post(models.Model):
...
类注释(models.Model):
post=models.ForeignKey(post,on_delete=models.CASCADE)
...
url.py
urlpatterns=[
...
路径('post//comments',CreateReadCommentView.as_视图({'post':'create','get':'list'})),
]
视图.py
class CreateReadCommentView(ModelViewSet):
serializer\u class=CommentSerializer
权限\u类=[IsAuthenticated]
queryset=Comment.objects.all()
def执行_创建(自、序列化程序):
serializer.save(author=self.request.user)
def get_queryset(自我):
return super().get_queryset().filter(post=self.kwargs.get('post_id'))
您可以检查,因为您已经有了url结构,您可以只使用overrideget\u queryset()
方法,而不使用drf嵌套路由器
库。贴出了答案。
class CreateReadCommentView (ModelViewSet) :
serializer_class = CommentSerializer
permission_classes = [IsAuthenticated]
queryset = Comment.objects.all()
def perform_create (self, serializer) :
serializer.save(author=self.request.user)