나는 다음과 같은 모델이 있습니다장고 - 가디언 권한 - A의 일대 다 관계에있는 개체에 대한 사용 권한을 설정
프로젝트 :
class Project(models.Model):
project_name = models.CharField(max_length=100, unique=True)
SearchCodes 다음에서
class SearchCode(models.Model):
project = models.ForeignKey(Project, on_delete=models.CASCADE)
search_code = models.CharField(max_length=3)
search_code_modifier = models.CharField(max_length=1)
class Meta:
unique_together = ('project', 'search_code', 'search_code_modifier',)
을 Django-Guardian docs 장고 관리자 권한을 설정할 수 있습니다. 그런 다음 프로젝트에 대해 다음과 같이 뷰에서 사용자를 확인/제한 할 수 있습니다.
def project_edit(request, pk_project):
project = get_object_or_404(Project, pk=pk_project)
project_name = project.project_name
user = request.user
# Check user permission at the object level by passing in this specific project
if user.has_perm('myApp.change_project', project):
...do something
이제 여기에 내가 갇혀 있습니다. 어떻게 장고 - 관리자의 프로젝트와 관련된 모든 SearchCodes에 대한 권한을 설정합니까? SearchCode에 대한 개체 수준 사용 권한을 설정하고 싶지 않습니다. SearchCode의 모든 인스턴스가됩니다. 대신 관리자로 설정해야합니다.
이 프로젝트와 관련된 모든 SearchCode를 볼 수 있지만 다른 SearchCode는 볼 수 없습니다.
자세한 내용이 필요하면 알려주십시오. 가능하면 제네릭으로 유지하려고 노력했습니다.
고맙습니다 - 도움이나 조언을 주시면 감사하겠습니다.
는 편집 : 나는 장고 - 가디언의 프로젝트 개체 수준 사용 권한을 설정합니다 Admin-Integration 예를 사용했다.이 시점에서이 프로젝트의 개체 - 권한 페이지에있는 동안이 특정 Project 인스턴스와 관련된 모든 SearchCodes에 대한 사용 권한을 설정하는 방법이 있어야합니다.
감사합니다. 이것은 설정 후 사용 권한을 확인하는 데 매우 도움이됩니다 (+1). 그러나 장고 관리자의 SearchCodes에 대한 사용 권한을 설정하는 방법에 대한 포인터/튜토리얼 등을 찾고 있습니다. 아마 내가이 개념을 사용하고 SearchCode 레벨에서 내 권한을 굴릴 수는 있겠지만 - 나는 관리자가되기를 원합니다. - 사용자를 위해서 그리고 일관성을 위해서 :) – beginAgain