2014-12-02 3 views
0

사이트 프레임 워크 (미들웨어 포함)를 활성화하고 두 개의 사이트 (ID = 1 및 ID = 2)를 설정했습니다. 내 모델 중 하나는 사이트에 외래 키를 사용합니다. 인수 위해, 내가 가진 내 settings.py에서이django의 사이트에 관계없이 모든 모델 인스턴스 표시 admin

class Person(models.Model): 
    name = models.CharField(max_length=20) 
    site = models.ForeignKey(Site) 
    on_site = CurrentSiteManager() 

처럼 보이는 말할 수 SITE_ID = 1

나는 관리자 화면에 사람의 인스턴스를 생성하고 사이트에 자사의 사이트를 설정하면 ID = 2 인 경우 생성되지만 현재 관리 화면에는 표시되지 않습니다.

이것은 나에게 반 직관적 인 것처럼 보입니다. 내 두 장을 관리하기 위해 단일 장고 관리 화면을 사용하고 싶습니다. 내 list_display에는 '사이트'가 있으므로 모든 인스턴스를 보여 주면 어떤 사이트와 관련이 있는지 알 수있었습니다.

관리자 화면에서 내 모델의 모든 인스턴스가 사이트 ID에 관계없이 표시되는지 확인하는 방법이 있습니까?

모든 모델 인스턴스를 관리하려면 두 개의 별도 관리 URL에 로그인하고 싶지 않습니다.

답변

1

실제로는 CurrentSiteManager이 필요하지 않습니다. 단순히 ForeignKey를 통해 사이트 모델에 모델을 연결하십시오.

from django.contrib.sites.models import Site 
class Person(models.Model): 
    name = models.CharField(max_length=20) 
    site = models.ForeignKey(Site) 
    on_site = models.ForeignKey(Site,related_name="site_users") 

및 관리에

, 당신은 드롭 다운이 Person가 속해야 할 사이트 선택이 표시됩니다.

스키마를 변경하기 때문에 모델을 이전하지 마십시오.

+1

감사합니다. 방금 CurrentSiteManager를 주석 처리했으며 이제는 나타납니다. 확실히 정직하게 왜 그것이 작동하는지 확실하지 않습니다. 필자는 문서를 조금 더 읽어야 할 필요가 있다고 생각합니다. – BoomShaka

관련 문제