2012-04-16 2 views
0

관리 인터페이스의 어느 부분이 어떤 직원에게만 표시되는지 제한하고 싶습니다. 예를 들어 한 사람이 관련 항목 만 청구하고 다른 하나는 고객 지원을 책임질 수 있습니다. 3 분의 1은 완전한 액세스 권한을 가질 수 있습니다.Django Admin에 대한 수퍼 유저가 아닌 사용자의 액세스

is_superuser를 True로 설정하여 전체 액세스 권한을 제공 할 수 있지만 원하는 것은 아닙니다. Admin 인터페이스에 대한 액세스 권한을 가진 모든 직원이 수퍼 유저가되기를 원하지 않습니다.

is_staff를 True로 설정하여 관리자 인터페이스에 로그인하도록 허용 할 수 있지만 로그인하면 직원은 아무 것도 액세스 할 수 없습니다. "사용자는 아무것도 수정할 수있는 권한이 없습니다."참조

직원이 장고의 일부를 액세스 할 수 있습니다 할 수있는 방법이 있나요

class MyAdmin(admin.ModelAdmin): 
    def has_edit_permission(self, request): 
     return True 

:

나는 방법은 this question 설명하지만이 같은 "당신은없는 권한"결과를 얻고 시도 수퍼 유저가 아닌 관리자 인터페이스?

답변

3

has_edit_permission과 같은 것이 없습니다. has_change_permission입니다. 세 가지 권한 방법에 대한 추가 정보를 원하시면

Django ModelAdmin docs 참조 : 객체를 추가하는 것은 허용되는지

ModelAdmin.has_add_permission(self, request)

그렇지 않으면, FalseTrue를 반환해야합니다. obj을 편집하는 것이 허용되는지

ModelAdmin.has_change_permission(self, request, obj=None)

그렇지 않으면, FalseTrue를 반환해야합니다. objNone 인 경우이 유형의 개체 수정이 일반적으로 허용되는지 여부를 나타 내기 위해 True 또는 False을 반환해야합니다 (예 : False은 현재 사용자가이 유형의 개체를 편집 할 수 없음을 의미하는 것으로 해석됩니다). ModelAdmin.has_delete_permission(self, request, obj=None)

그렇지 않으면 obj을 삭제하는 것이 허용되는지 True, False를 반환해야합니다. objNone 인 경우이 유형의 개체 삭제가 일반적으로 허용되는지 여부를 나타 내기 위해 True 또는 False을 반환해야합니다 (예 : False은 현재 사용자가이 유형의 개체를 삭제할 수 없음을 의미하는 것으로 해석됩니다). 당신이 싶은 무엇

+0

내가 어디에서 has_edit_permission을 얻었는지 알지 못하지만, has_change_permission이 작동합니다. – Parand

2

, has_change_permission를 오버라이드 (override)하지 않는 경우 - 단지뿐만 아니라 사용자 및/또는 사용자 그룹 (들) 해당 권한 ("X가를 변경할 수 있습니다") 제공 검사는 "직원"입니다.

+0

나는 그것을 시도했다, 일하지 않았다, 아마 내가 세부를 망쳤 기 때문에. 나는 그것을 또 한번 시도 할 것이다. – Parand

관련 문제