2010-04-05 3 views
0

다른 SITE_ID가있는 두 개의 사이트가 있지만 두 사이트에 대해 하나의 관리 인터페이스 만 갖고 싶습니다.여러 사이트에 대해 하나의 관리자

난 그냥 확장 FlatPage있는 모델이 있습니다

# models.py 
class SFlatPage(FlatPage): 
    currobjects = CurrentSiteManager('sites') 

    galleries = models.ManyToManyField(Gallery) 
    # etc 

# admin.py 
class SFlatPageAdmin(FlatPageAdmin): 
    fieldsets = None 

admin.site.register(SFlatPage, SFlatPageAdmin) 
admin.site.unregister(FlatPage) 

나는 이유를 알고하지 않습니다,하지만 관리 인터페이스에서 현재 사이트의 페이지 만이있다. http://site1.com/admin/에서 나는 flat1을 site1에, http://site2.com/admin/에 보았습니다. site2에 대한 플랫 페이지를 봅니다. 하지만 http://site1.com/admin/ 인터페이스의 모든 페이지를보고 싶습니다! 내가 도대체 ​​뭘 잘못하고있는 겁니까?

+0

그 관리자를 currobjects과의 거래는 무엇입니까? 당신의 의도는 무엇입니까, 그리고 표준 객체 관리자로 끝내고있는 것이 있습니까? –

답변

1

이것은 CurrentSiteManager입니다. the documentation에 따르면 "현재 사이트와 관련된 개체 만 포함하도록 쿼리를 자동으로 필터링하는 모델 관리자입니다."

줄을 제거하면 모든 것이 예상대로 작동합니다. 또는 당신은 관리 인터페이스는 항상 지정된 첫 번째 관리자를 사용하는 것이 코드 노트에서 다른 곳 currobjects를 사용합니다, 그래서 당신은 다음과 같이 먼저 표준 관리자를 지정해야하는 경우 :

# models.py 
class SFlatPage(FlatPage): 
    objects = models.Manager() # Is first, so will be used by admin 
    currobjects = CurrentSiteManager('sites') # your alternative manager 

    galleries = models.ManyToManyField(Gallery) 
+0

오, 고마워. 나는 사용자 정의 이름을 가진 내 사용자 정의 관리자가 기본 관리자를 대체하지 않을 것이라고 생각했습니다. –

관련 문제