views
У меня есть флажок, чтобы проверить пользователей, чтобы добавить их в группу. Вот если проверенный пользователь уже находится в группе, то теперь он не работает с этим кодом, но я хочу продолжить (если проверенные пользователи уже включены), добавьте оставшегося пользователя в группу и оставьте уже добавленного пользователя без изменений.
Выдает эту ошибку, если проверенные пользователи уже находятся в группе
Не удалось выполнить ограничение UNIQUE: user_registration_user_groups.user_id, user_registration_user_groups.group_id
def assign_users_to_group(request, pk):
group = get_object_or_404(Group, pk=pk)
if request.method == 'POST':
users = request.POST.getlist('users')
for user in users:
if user in group.user_set.all():
pass
group.user_set.add(user)
messages.success(request, 'users added to this group')
return redirect('user_groups:view_group_detail', group.pk)
ОБНОВЛЕНИЕ с ответом Nafees Anwar
def assign_users_to_group(request, pk):
group = get_object_or_404(Group, pk=pk)
if request.method == 'POST':
users = request.POST.getlist('users')
for user in users:
try:
group.user_set.add(user)
except IntegrityError as e:
if user not in group.user_set.all():
raise e
messages.success(request, '{} user added to this group')
return redirect('user_groups:view_group_detail', group.pk)