정말 이런 django-guardian (https://github.com/lukaszb/django-guardian.git)을 좋아합니다. Django에 대한 객체 수준의 권한을 제공합니다.
귀하의 구체적인 문제에 접근하는 방법은 다음과 같습니다.
이 저장에 추가하여 회사의 주인이 내가 새로운 회사의 창조에 각 회사의 그룹을 만들 것
class Meta:
permissions = [('can_add', 'Add product to company'), etc...]
다음을 수행 할 수있는 작업을 정의합니다().
def save():
# Create a permission group named %s_group % company_name
# assign(permission, group) - add the permissions to this group.
이 예제에서는 Foo_group 및 Bar_group과이 그룹에 할당 된 해당 개체의 사용 권한을 갖게됩니다.
이제 남은 작업은 다른 회사 그룹의 사용자를 추가/제거하여 해당 개체와 관련된 사용 권한을 부여하는 것입니다.
마지막 구성 요소는 관련 작업에 대한 사용 권한을 확인하는 것입니다. 이는 각 동작에 대한 적절한보기에서 수행 할 수 있습니다 (예 : 추가, 제거 등
권한 검사를 위해 Mixins을 사용하는 것이 정말 좋기 때문에 클래스 기반보기를 선호합니다. Guardian은 기본적으로 PermissionRequiredMixin을 제공하지만보다 복잡한 상황에서는 일반적으로 맞춤 설정이 가능합니다.