django에서 그룹에 사용자 추가


139

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

나는 이것을 할 수있다 :

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

내가 어떻게 이런 짓을 할까 :

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

이 솔루션 버전은 민감합니까? 내가 이것을 시도했을 때 장고 1.8, 나는 "예기치 않은 키워드 : 이름"을 얻었습니다
rschwieb

답변:


248

그룹 이름으로 그룹 모델을 사용하여 그룹을 찾은 다음 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)

17
고마워 장고 문서에서 찾을 수없는 가장 기본적인 것들 중 일부는 바보처럼 보인다
Francis Yaconiello

1
docs.djangoproject.com/en/dev/intro/tutorial01 'API로 재생하기'섹션에 비슷한 예제가 있습니다
juankysmith

9
이 튜토리얼은 매우 유용합니다. 내가 의미하는 것은 프로그래밍 방식으로 그룹을 작성하는 데 필요한 문서 섹션에서 볼 것으로 예상된다는 것입니다. 대신 docs.djangoproject.com/en/1.3/topics/auth/#groups 단락이 있습니다. 인증 모델은 일반 모델이며 표준 모델 참조가 적용됩니다.
Francis Yaconiello

user_setDjango Doc 은 어디에 있습니까? 어디서나 찾을 수 없음
민 타이

1
@MinhThai 역 관계 필드의 기본값 은 필드에 설정되어 있지 않은 <content_type>_set경우 related_name입니다.
Monica with Sox

99

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

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

1
당신도 할 수는 Group.objects.get_by_natural_key('groupname')있지만 그것을 단락시키지 않습니다 : D
CpILL

2
@enchance 필요할 때마다. 그룹 할당을 수행하는 View의 코드 내에서 발생했을 수 있습니다.
coredumperror 2016 년
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.