Python Django REST框架中的嵌套资源
我希望用嵌套资源实现我的新APIPython Django REST框架中的嵌套资源,python,django,rest,django-rest-framework,nested-resources,Python,Django,Rest,Django Rest Framework,Nested Resources,我希望用嵌套资源实现我的新API Example: /api/users/:user_id/posts/ 将对特定用户的所有帖子进行评估。我还没有看到这个用例的工作示例,也许这不是实现RESTAPI的正确方法 要映射/api/users/:user\u id/posts/您可以使用@link() 如前所述,您将使用@detail\u route或@list\u route而不是@link()。请阅读文档以获取详细解释。如所述,@link装饰器被删除,取而代之的是@list\u route和@d
Example: /api/users/:user_id/posts/
将对特定用户的所有帖子进行评估。我还没有看到这个用例的工作示例,也许这不是实现RESTAPI的正确方法 要映射
/api/users/:user\u id/posts/
您可以使用@link()
如前所述,您将使用@detail\u route
或@list\u route
而不是@link()
。请阅读文档以获取详细解释。如所述,@link
装饰器被删除,取而代之的是@list\u route
和@detail\u route
装饰器
更新:@detail\u route
&@list\u route
已被弃用,取而代之的是。
以下是备选解决方案:
解决方案1:
解决方案2:
试试看。还没有尝试过,但看起来很有希望,很多人已经在使用它了。看起来像是我们已经在努力实现的一个高级版本
希望这能有所帮助。你被困在哪里了?假设您已经安装了OAUTH2,这是相当直接的。我的服务器将是什么样子?要选择哪些相关字段?链接装饰器被删除,取而代之的是列出的_route和detail_rout装饰器:@PranjalMittal use@detail_route(methods=['post'])。签出文档
from rest_framework.decorators import link
from rest_framework.response import Response
class UserViewSet(viewsets.ModelViewSet):
model = User
serializer_class = UserSerializer
# Your regular ModelViewSet things here
# Add a decorated method like this
@link()
def posts(self, request, pk):
# pk is the user_id in your example
posts = Post.objects.filter(owner=pk)
# Or, you can also do a related objects query, something like:
# user = self.get_object(pk)
# posts = user.post_set.all()
# Then just serialize and return it!
serializer = PostSerializer(posts)
return Response(serializer.data)
@detail_route()
def posts(self, request, pk=None):
owner = self.get_object()
posts = Post.objects.filter(owner=owner)
context = {
'request': request
}
post_serializer = PostSerializer(posts, many=True, context=context)
return Response(post_serializer.data)