Django ajax follow and unfollow

前端 未结 1 1747
说谎
说谎 2021-01-07 10:49

I have a follower system in place and it is executed with ajax. The problem is the follower button doesnt work. it is not clicking and user number followers does not increas

1条回答
  •  生来不讨喜
    2021-01-07 11:03

    def user_follow(request):
        user_id = request.POST.get('id', None)
        action = request.POST.get('action', '')
    
        FOLLOW_ACTION = 'follow'
        UNFOLLOW_ACTION = 'unfollow'
    
        if request.user.is_anonymous:
            return JsonResponse({
                'status':'ko',
                'message': 'You must login'}
            )
    
        if action not in [FOLLOW_ACTION, UNFOLLOW_ACTION]:
            return JsonResponse({
                'status':'ko',
                'message': 'Unknown action {}'.format(action)}
            )
    
        try:
            user = User.objects.get(id=user_id)
            if action == UNFOLLOW_ACTION:
                Contact.objects.filter(user_from=request.user,user_to=user).delete()
                return JsonResponse({
                    'status':'ok'
                    })
            else:
                contact, created = Contact.objects.get_or_create( user_from=request.user, user_to=user)
                return JsonResponse({
                    'status':'ok',
                    'message': 'Following id : {}'.format(contact.id)
                })
    
    
        except User.DoesNotExist:
            return JsonResponse({
                'status':'ko'
                'message': 'user id: does not exist: {}'.format(user_id)
            })
    

    You mixed up follow and unfollow, when action is unfollow you create contact.

    Template:

    {% if request.user != user %}
       Follow ....
    {% endif %}
    

    0 讨论(0)
提交回复
热议问题