Example #1
0
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"
        )
Example #2
0
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())