2

사이트 프레임 워크를 사용하여 하나의 코드 기반에서 여러 개의 응용 프로그램을 실행할 수 있습니다. 3 명의 사용자와 3 개의 사이트가 있습니다. 그들은 장고 관리 인터페이스에 로그인하고 콘텐츠를 만들 수 있지만 다른 사이트 프레임 워크가 관리 할 수있는 사이트 만 보길 원합니다. 사이트 프레임 워크가이를 처리 할 수 ​​있습니까? 그렇지 않다면 누가 이것을 달성 할 수 있는지에 관해 올바른 방향으로 안내 할 수 있습니까?Django 사이트 프레임 워크 권한

편집 : 나는 간단한 예였다 무슨 짓을

. 여기에 ....

class Weblog(models.Model): 
    title = models.CharField(max_length=250) 
    slug = models.SlugField(unique=True) 
    user = models.ForeignKey(User) # this is the user who should own that blog and see nothing else 
    site = models.ForeignKey(Site) 

    objects = models.Manager() 
    on_site = CurrentSiteManager() 

    def __unicode__(self): 
     return self.title 

class Entry(models.Model): 
    title = models.CharField(max_length=200) 
    slug = models.SlugField() 
    body = models.TextField() 
    author = models.ForeignKey(User) 
    weblog = models.ForeignKey(Weblog) 

이것은 혼란 스럽다. 사이트와 사용자에 대한 참조가있는 웹 로그의 개념을 이해합니다. 그러나 그 사람은 자신 만의 웹 로그에서 생성 된 항목을 보거나 추가/편집하는 것을 어떻게 제한합니까?

감사합니다.

답변

1

예, 장고 사이트 프레임 워크는 정확히 그렇게 할 수 있습니다. 이미 수행 한 작업에 대한 정보가 많지 않으므로 도움이 될 수 없으므로 자세한 내용을 알려주십시오.

the specific documentation도 확인하십시오.

수정 좋아, 이제는 사용자가 자신의 전용 사이트에 대한 콘텐츠 만보고 편집 할 수 있도록 제한하는 것이 좋습니다. 이것은 좀 더 복잡합니다.

이보기 및 수정 사항을 처리하기 위해 관리자 인터페이스 또는 사용자 정의보기를 사용하는지 여부에 따라 다릅니다. 사용자 정의를 사용하면 사용 된 queryset을 쉽게 변경할 수 있지만 관리자 인터페이스를 사용한다고 상상해보십시오.

이 경우에는 CurrentSiteManager()를 사용하여 기본 관리자 (개체)를 재정의하면 작업을 수행 할 수 있습니다. 그러나

  • , 당신이 그것을 테스트 할 필요가 기본 관리자가 사용하지 않는 것이 좋습니다 무시, 부작용이있을 수 있습니다 (첫 번째 부작용은 다음과 같습니다 당신은 모든 사이트에있는 모든 편집의 목록이 없습니다)
  • 을 사용자 A가 사이트 B에 로그인 할 수 없음을 확인해야합니다. admin 인터페이스

또 다른 해결책은이 웹 사이트 각각에 대해 사용자 지정 관리자를 만드는 것일 수 있습니다. 관리자 문서를 참조하십시오.

하지만 질문 : 사용자가 각 웹 사이트에서 콘텐츠를 수정하도록 허용하지 않으려면이 모든 관리 웹 사이트에 고유 한 인터페이스가 있어야합니까? 예를 들어 한 사람이 모든 사이트의 콘텐츠를 편집 할 수있게하려면 사이트 프레임 워크가 갈 길이 없다면 각 웹 사이트를 독립적이며 명확하게 분리해야합니다.

또 다른 해결책은보기에 사용자 지정 권한을 정의 할 수있는 permissions Django의 가능성을 찾는 것입니다. 나는 (그것을 시도하지 않은) 관리자보기를 보호하는 데 사용할 수도 있다고 생각합니다.

도움이되기를 바랍니다.응용 프로그램이 할 것

+0

난 당신 DAKS 동안 편집을, 어쩌면 그 도움이 될 것입니다. 그것은 제가 다른 것을 만들기 위해 사용하고있는 작은 예제이지만 동일한 원칙이 적용됩니다. 희망은 도움이됩니다. – JeffTaggarty

0

장고 사이트 권한을 정확히 :

https://github.com/bmihelac/django-site-permissions

이 사이트 넓은 권한을 구현할 수있는 방법을 확인하기 위해 요구 사항을 충족하거나 소스 코드를 확인하면 당신은 당신의 프로젝트에 통합 할 수 있습니다

.

(면책 조항 : 나는 장고 - 사이트 권한 응용 프로그램의 개발자입니까?)

관련 문제