jabajke

Untitled

Apr 14th, 2023
32
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.05 KB | None | 0 0
  1. # serializers.py
  2.  
  3. class PostHyperLink(serializers.HyperlinkedRelatedField):
  4. view_name = 'post-detail'
  5. queryset = Post.objects.all()
  6.  
  7. def get_url(self, obj, view_name, request, format):
  8. url_kwargs = {
  9. 'user_id': obj.owner.pk,
  10. 'post_id': obj.pk
  11. }
  12. return reverse(view_name, kwargs=url_kwargs, request=request, format=format)
  13.  
  14. def get_object(self, view_name, view_args, view_kwargs):
  15. lookup_kwargs = {
  16. 'user_id': view_kwargs['user_id'],
  17. 'pk': view_kwargs['post_id']
  18. }
  19. return self.get_queryset().get(**lookup_kwargs)
  20.  
  21.  
  22. class PostListSerializer(serializers.ModelSerializer):
  23. post_url = PostHyperLink()
  24.  
  25. class Meta:
  26. model = Post
  27. fields = ['title', 'post_url']
  28. # views.py
  29.  
  30. class PostListAPIView(generics.ListAPIView):
  31. queryset = User.objects.all()
  32. serializer_class = PostListSerializer
  33.  
  34. def get_queryset(self):
  35. user_id = self.kwargs['user_id']
  36. return Post.objects.filter(owner=user_id)
  37.  
Advertisement
Add Comment
Please, Sign In to add comment