Как добавить несколько прав пользователю в 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)
Вернуться на верх