개발/Python

파이썬 Django의 그룹에 사용자 추가

MinorMan 2021. 1. 21. 11:23
반응형

<질문>

그룹 이름으로 django의 그룹에 사용자를 추가하려면 어떻게해야합니까?

나는 이것을 할 수있다 :

user.groups.add(1) # add by id

다음과 같이 어떻게 할 수 있습니까?

user.groups.add(name='groupname') # add by name

<답변1>

그룹 이름과 함께 Group model을 사용하여 그룹을 찾은 다음 user_set에 사용자를 추가합니다.

from django.contrib.auth.models import Group
my_group = Group.objects.get(name='my_group_name') 
my_group.user_set.add(your_user)

<답변2>

최신 버전의 Django에서이를 수행하는 방법은 다음과 같습니다 (Django 1.7에서 테스트 됨).

from django.contrib.auth.models import Group
group = Group.objects.get(name='groupname')
user.groups.add(group)

<답변3>

coredumperror가 맞지만 공유해야 할 한 가지를 찾았습니다.

from django.contrib.auth.models import Group

# get_or_create return error due to 
new_group = Group.objects.get_or_create(name = 'groupName')
print(type(new_group))       # return tuple

new_group = Group.objects.get_or_create(name = 'groupName')
user.groups.add(new_group)   # new_group as tuple and it return error

# get() didn't return error due to 
new_group = Group.objects.get(name = 'groupName')
print(type(new_group))       # return 

user = User.objects.get(username = 'username')
user.groups.add(new_group)   # new_group as object and user is added
반응형