2012-09-12 8 views
29

사용자 그룹 (페이스 북 그룹과 매우 유사)에 대한 사용자 권한을 구현해야합니다. 예를 들어 각 그룹에는 can_post, can_delete, can_ban 등과 같은 권한을 가진 구성원이있을 수 있습니다. 물론 한 사용자는 여러 그룹의 구성원이 될 수 있으며 그룹은 다른 권한을 가진 많은 다른 사용자를 가질 수 있습니다. 이 기능에 필요한 모델은 무엇입니까?사용자 그룹 및 권한

답변

59

장고에는 그룹 시스템이 내장되어 있습니다. 이와 같은 질문이있을 때마다 나는 광범위하고 유용하며 잘 쓰여진 searching the Django docs을 권장합니다.

django.contrib.auth 앱을 사용하는 한 그룹에 액세스 할 수 있습니다. 그런 다음 해당 그룹에 사용 권한을 할당 할 수 있습니다.

from django.contrib.auth.models import User, Group, Permission 
from django.contrib.contenttypes.models import ContentType 

content_type = ContentType.objects.get(app_label='myapp', model='BlogPost') 
permission = Permission.objects.create(codename='can_publish', 
             name='Can Publish Posts', 
             content_type=content_type) 
user = User.objects.get(username='duke_nukem') 
group = Group.objects.get(name='wizard') 
group.permissions.add(permission) 
user.groups.add(group) 
+4

보통이 코드를 삽입 하시겠습니까? –

+0

위의 코드는 레코드를 생성하므로 셸 내에서 실행하는 것과 같습니다. 앱을 배포하거나 배포하려는 경우이 초기 데이터가 저장되도록 설정해야합니다. 웹 사이트의 관리자 내에서 수정할 수도 있습니다. –

+0

내가했던 것과 똑같은 일은 셸이나 관리자에서 한 다음 응용 프로그램의 향후 인스턴스에로드 할 픽스처를 생성했습니다. 답장을 보내 주셔서 감사합니다 –