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
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 %}