Как добавить несколько прав пользователю в django?
Я хочу добавить несколько разрешений для пользователя в одном api запросе. У меня есть массив кодовых имен разрешений, как передать его в представление? Является ли цикл for единственным способом? Или любой другой способ будет работать?
u = User.objects.get(username="admin_user_1")
permission = Permission.objects.get(name="Can add user")
u.user_permissions.add(permission)
Этот код может быть использован для одного разрешения
Вы можете получить кверисет ваших разрешений, проверяя, присутствует ли поле в списке - списке, который вы можете получить через request.POST. Затем вы можете использовать нотацию *
для расширения списка в функции m2m add()
:
u = User.objects.get(username="admin_user_1")
permissions_list = request.POST.getlist('permissions') # this may be differ
permissions = Permission.objects.filter(name__in=permissions_list)
u.user_permissions.add(*permissions)