def change_friends(request, action, pk): if not request.user.is_authenticated(): return redirect('chat:home') elif int(pk) == int(request.user.pk): return redirect('chat:home') else: new_user = User.objects.get(pk=pk) if action == 'add': if Chat_room.objects.filter( (Q(user1=request.user) & Q(user2=new_user)) | (Q(user2=request.user) & Q(user1=new_user))).exists(): pass else: room = Chat_room(user1=request.user, user2=new_user) room.save() Friend.make_friend(request.user, new_user) Friend.make_friend(new_user, request.user) requestUserObj = Friend_request.objects.get( current_user=request.user) userRequestedFriendshipObj = Friend_request.objects.get( current_user=User.objects.get(pk=pk)) requestUserObj.requests_received.remove(User.objects.get(pk=pk)) userRequestedFriendshipObj.requests_sent.remove(request.user) elif action == 'loose': Friend.lose_friend(request.user, new_user) Friend.lose_friend(new_user, request.user) return redirect('chat:home')