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)
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 )
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 )
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))