def like_post(request, post_id): method = request.POST.get('method') if request.method == 'POST': post = get_object_or_404(Post, id=post_id) if method == 'like': if Like.objects.filter(post=post, author=request.user.userprofile): raise ValidationError( _('Invalid like: %(value)s'), code='invalid', params={'value': 'already exists'}, ) like = Like(author=request.user.userprofile, post=post) like.save() elif method == 'dislike': like = Like.objects.get(author=request.user.userprofile, post=post) like.delete() post.save() post.author.save() request.user.userprofile.save() response_data = {} response_data['post_id'] = post.id response_data['likes'] = post.like_set.count() return HttpResponse( json.dumps(response_data), content_type="application/json" ) else: return HttpResponse( json.dumps({"nothing to see": "this isn't happening"}), content_type="application/json" )
def likepost(request, pk=None): post = get_object_or_404(Post, id=pk) if request.user.is_authenticated: like = Like.objects.filter(post=post, author=request.user).first() if not like: like = Like(post=post, author=request.user) like.save() else: like.delete() return HttpResponse(Like.objects.filter(post=post).count())