2π
β
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 %}
<a> Follow ....
{% endif %}
π€user2021091
Source:stackexchange.com