Exemple #1
0
def addLike(request):
    post_pk = request.POST.get('post_pk')
    post = Post.objects.get(pk=post_pk)
    try:
        like = Like(post=post, user=request.user)
        like.save()
        result = 1
    except Exception as e:
        like = Like.objects.get(post=post, user=request.user)
        like.delete()
        result = 0
    return {'result': result, 'post_pk': post_pk}
Exemple #2
0
def addLike(request):
    post_pk = request.POST.get('post_pk')  # 先拿到被like了的post的pk
    post = Post.objects.get(pk=post_pk)  # 由pk找到Post中那个object
    try:
        like = Like(post=post, user=request.user)  # 用当前的post和user创建一个like的对象
        like.save()  # 把刚刚创建的对象存入数据库中;如果这个对象已经存在,跳到下面的exception
        result = 1
    except Exception as e:  # 已经点过的like再被点,说明要取消这个like,所以从数据库中删除
        like = Like.objects.get(post=post, user=request.user)
        like.delete()
        result = 0

    return {'result': result, 'post_pk': post_pk}
Exemple #3
0
def addLike(request):
    post_pk = request.POST.get('post_pk')
    post = Post.objects.get(pk=post_pk)
    try:
        like = Like(post=post, user=request.user)
        # save function may fail since we have defined unique_together in Like Model(models.py)
        like.save()
        result = 1
    except Exception as e:
        like = Like.objects.get(post=post, user=request.user)
        like.delete()
        result = 0

    return {'result': result, 'post_pk': post_pk}
Exemple #4
0
def addLike(request):
    post_pk = request.POST.get('post_pk')
    post = Post.objects.get(pk=post_pk)
    try:
        like = Like(post=post, user=request.user)
        like.save()
        result = 1
    # because the existing of like, it now cancelles previous likes
    except Exception as e:
        like = Like.objects.get(post=post, user=request.user)
        like.delete()
        result = 0

    return {'result': result, 'post_pk': post_pk}
Exemple #5
0
def addLike(request):
    post_pk = request.POST.get('post_pk')
    post = Post.objects.get(pk=post_pk)
    try:
        like = Like(post=post, user=request.user)
        # save the like into the database
        like.save()
        result = 1
    except Exception as e:
        # if the like already exist, delete this action
        like = Like.objects.get(post=post, user=request.user)
        like.delete()
        result = 0
    # return json with result
    return {'result': result, 'post_pk': post_pk}
Exemple #6
0
def addLike(request):
    #拿到post_id,post_pk是从index.js中传过来的key
    post_pk = request.POST.get('post_pk')
    #根据post_id拿到post
    post = Post.objects.get(pk=post_pk)
    try:
        like = Like(post=post, user=request.user)  #创建一个新的Like的object
        like.save()
        result = 1
    except Exception as e:
        like = Like.objects.get(post=post, user=request.user)  #如果已经存在了一个like
        like.delete()
        result = 0

    return {'result': result, 'post_pk': post_pk}
Exemple #7
0
def addLike(request):
    post_pk = request.POST.get('post_pk')
    post = Post.objects.get(pk=post_pk)
    try:
        # It's about how to add data to Django database
        like = Like(post=post, user=request.user)
        like.save()
        result = 1
    except Exception as e:
        # One user can not like the post twice
        like = Like.objects.get(post=post, user=request.user)
        like.delete()
        result = 0

    return {'result': result, 'post_pk': post_pk}
Exemple #8
0
def addLike(request):
    post_pk = request.POST.get("post_pk")
    post = Post.objects.get(pk=post_pk)
    try:
        like = Like(post=post, user=request.user)
        like.save()
        result = 1
    except Exception as e:
        # An exception upon save() means that the like already exists
        # The user wants to cancel the like instead
        like = Like.objects.get(post=post, user=request.user)
        like.delete()
        result = 0

    return {"result": result, "post_pk": post_pk}
Exemple #9
0
def toggleLike(request):
    '''come from index.js in static/js'''
    post_pk = request.POST.get('post_pk')

    # find the current post
    post = Post.objects.get(pk=post_pk)
    try:
        like = Like(post=post, user=request.user)
        like.save(
        )  # might throws Exception if there is already a like with the same post and user
        result = 1
    except Exception as e:
        like = Like.objects.get(post=post, user=request.user)
        like.delete()
        result = 0
    return {'result': result, 'post_pk': post_pk}
Exemple #10
0
def addLike(request):
    post_pk = request.POST.get('post_pk')
    post = Post.objects.get(pk=post_pk) # pylint: disable=maybe-no-member
    try:
        like = Like(post=post, user=request.user)
        like.save()
        result = 1
    except Exception as e:
        like = Like.objects.get(post=post, user=request.user) # pylint: disable=maybe-no-member
        like.delete()
        result = 0

    return {
        'result': result,
        'post_pk': post_pk
    }
Exemple #11
0
def addLike(request):
    post_pk = request.POST.get('post_pk')
    # which post i click like?
    post = Post.objects.get(pk=post_pk)
    try:
        # Like is a contstructor
        like = Like(post=post, user=request.user)
        # save like object to db, if i found same like has already exist in the db
        like.save()
        result = 1
    except Exception as e:
        #  delete like
        like = Like.objects.get(post=post, user=request.user)
        like.delete()
        result = 0

    return {'result': result, 'post_pk': post_pk}
Exemple #12
0
def addLike(request): #传入的request,request里面的data的value是post.pk
    post_pk = request.POST.get('post_pk')
    post = Post.objects.get(pk=post_pk) 
    try:
        like = Like(post=post, user=request.user) #创建一个Like的object,需要提供Like的2个attributes
        like.save() #把这个object存在db里面, 如果db已经存在了一个这个object,user已经点过赞了
        #因为是1 user 只能点一个post ,如果存在了就调到exception, 就是取消
        result = 1 
    except Exception as e:
        like = Like.objects.get(post=post, user=request.user)
        like.delete()
        result = 0

    return {
        'result': result,
        'post_pk': post_pk
    }
Exemple #13
0
def addLike(request):
    # get pk from AJAX request
    post_pk = request.POST.get('post_pk')
    # get the post object by id
    post = Post.objects.get(pk=post_pk)
    try:
        # create a like object
        like = Like(post=post, user=request.user)
        # it's possible that the like alreay exists
        like.save()
        result = 1
    except Exception as e:
        # get the like object by post, user (unique)
        like = Like.objects.get(post=post, user=request.user)
        like.delete()
        result = 0
    # return Json data
    return {'result': result, 'post_pk': post_pk}
Exemple #14
0
def addLike(request):
    # post_pk get from index.js
    post_pk = request.POST.get('post_pk')
    post = Post.objects.get(pk=post_pk)

    # if this user did not like this post before
    try:
        # Create Like object using contructor
        like = Like(post=post, user=request.user)
        # Upload Like object to database
        like.save()
        result = 1
    # if this user liked this post before --> cancel like
    except Exception as e:
        like = Like.objects.get(post=post, user=request.user)
        like.delete()
        result = 0

    return {'result': result, 'post_pk': post_pk}
Exemple #15
0
def addLike(request):
    post_pk = request.POST.get('post_pk')
    print(post_pk)
    post = Post.objects.get(pk=post_pk)

    try:
        like = Like(post=post, user=request.user)
        #save to database, will have exception if this user already liked the post (bcz we set unique-together in models.py)
        like.save()
        result = 1

    except Exception as e:
        #handle exception, which means remove like
        like = Like.objects.get(post=post, user=request.user)
        like.delete()
        #result 0 or 1 tells if it's remove like or add like
        result = 0

    #ajax return type is json, return to index.js
    return {'result': result, 'post_pk': post_pk}