Example #1
0
    def list(self, request, *args, **kwargs):
        queryset = Post.objects.filter(published=True)
        object_list, pagination = self.paginate_objects(request, queryset)

        data = {
            'pagination': pagination,
            'data': [post_to_dict(request, post) for post in object_list]
        }
        return self.response(data=data)
Example #2
0
 def create(self, request, *args, **kwargs):
     form = PostForm(data=request.POST, files=request.FILES)
     if form.is_valid():
         post = form.save(commit=False)
         post.user = request.user
         post.save()
         return self.response(
             data=post_to_dict(request, post),
             status_code=status.HTTP_201_CREATED
         )
     else:
         return self.response(
             data={'error': form.errors},
             status_code=status.HTTP_400_BAD_REQUEST
         )
Example #3
0
    def update(self, request, *args, **kwargs):
        post = self.get_post()
        if not post:
            return self.resource_not_found()

        form = PostForm(data=request.PUT, files=request.FILES, instance=post)
        if form.is_valid():
            post = form.save()
            return self.response(
                data=post_to_dict(request, post),
                status_code=status.HTTP_200_OK
            )
        else:
            return self.response(
                data={'error': form.errors},
                status_code=status.HTTP_400_BAD_REQUEST
            )
Example #4
0
    def detail(self, request, *args, **kwargs):
        post = self.get_post()
        if not post:
            return self.resource_not_found()

        return self.response(data=post_to_dict(request, post))