2017-11-08 3 views
1

Django에서이 특정 사용자가 만든 객체 만 편집 할 수 있도록하여 관리자 권한에 대한 사용자 액세스 권한을 부여하는 방법이 있습니까?사용자가이 사용자가 만든 객체 만 수정 허용

예를 들어 다른 사용자를 만들 수있는 권한을 사용자에게 부여하고 싶지만이 권한으로 관리자 또는 다른 사용자가 만든 사용자를 수정하지 못하도록하고 싶습니다.

저는 django-admin을 사용하고 있습니다. 질문은 그 맥락에 있습니다.

답변

1

ModelAdmin 클래스의 has_change_permissionhas_delete_permission 메서드를 재정의해야합니다. 예를 들어

class MyModelAdmin(admin.ModelAdmin): 

    def has_change_permission(self, request, obj=None): 
     if obj is not None and obj.created_by != request.user: 
      return False 
     return True 

    def has_delete_permission(self, request, obj=None): 
     if obj is not None and obj.created_by != request.user: 
      return False 
     return True 
+0

그래서 당신이 필드를 만들기 위해 제안 할'created_by'? – UpmostScarab

+0

어떤 사용자가 어떤 개체를 생성했는지 추적 할 수있는 방법이 필요합니다. 'User' 테이블에 대한'ForeignKey'는 아마도 가장 간단한 해결책 일 것입니다. yes –

+0

네, 그것은 실제로 명백한 방법입니다. 그러나 저자가 기본적으로 추적되지 않는다고 확신합니까? – UpmostScarab