diff --git a/accounts/views.py b/accounts/views.py index 35c0e280b9657ec9f13f5f8a82bc2f3b33da384b..ada4eb7c0c8f92ebb86e78706eb7851abf37531d 100644 --- a/accounts/views.py +++ b/accounts/views.py @@ -85,10 +85,19 @@ def activate(request, activation_key): if request.method == "POST": request_data = request.POST.copy() - try: + try: user = User.objects.get(pk=request_data['user']) up = user.get_profile() - for peer in request_data['peers']: + + # use getlist to get the list of peers (might be multiple) + profile_peers = request.POST.getlist('peers') + + # remove already assigned peers, as these are selected by + # the user, no admin has yet verified those. They will be + # replaced by the admin's selection. + up.peers.clear() + + for peer in profile_peers: up.peers.add(Peer.objects.get(pk=peer)) up.save()