2013-03-14 2 views
0

은 고객 (Customer)이 올 수 있고 게시 하우스를 평가할 수있는 사이트 (PublishingHouse)를 만들고 있습니다. 우리는 CustomerPublishingHouse 모두의 주소를 저장해야합니다, 그래서 우리는 Address 클래스 다음과 같이합니다 CustomerPublishingHouse 클래스가에 대한 참조를 가지고 우리의 다음django admin : 재사용 가능한 클래스를 작성하는 법. 예 : 관리자 주소

class Address(models.Model): 
    line1 = models.CharField(max_length=50) 
    line2 = models.CharField(max_length=50) 
    city = models.CharField(max_length=50) 
    postal_code = models.CharField(max_length=6) 
    country = models.CharField(max_length=50) 

과, 같은 :

class Customer(models.Model): 
    name = models.CharField(max_length=50) 
    address = models.ForeignKey(Address) 

class PublishingHouse(models.Model): 
    name = models.CharField(max_length=50) 
    website = models.URLField(max_length=4096) 
    address = models.ForeignKey(Address) 

이 장고 껍질에 내 대화 형 세션에 대한 잘 작동하지만, 내가이 모델에 대한 관리자를 활성화하면 Address에서 필드를 만들 수있는 방법은 고객 추가 또는 출판사 추가 페이지에 나타 납니까?

나는 장고 1.5

답변

0

당신은 아마 generic inlines을 찾고 사용하고 있습니다. 문서화 된 exampleAddress에 따라 당신의 Image 모델 의견으로 당

것, 사용 수 클래스 상속 : 당신의 일반적인 인라인 관리에 max_num 속성

class Address(models.Model): 
    # fields 

class DynamicAddress(Address): 
    content_type = models.ForeignKey(ContentType) 
    object_id = models.PositiveIntegerField() 
    content_object = generic.GenericForeignKey("content_type", "object_id") 
    # etc 

또한 제한 할 수 있습니다 (일반) 인라인 수업.

+0

감사합니다. 또 하나의 질문은 '주소'와 다른 모델 사이의 관계를 보장 할 수있는 방법이 있습니까? –

+0

@ishaq, 내 편집 된 답변보기. –

+1

나는 그것을했다라고 말하기 위해 되돌아왔다. 그것은 관리자를 위해 일했습니다. 그러나 뷰 (또는 db와 return 데이터를 쿼리해야하는 API)를 작성하기 시작하고 GFK가 너무 고통 스러울 때까지 기다려야합니다. GFK보다 정상적인 관계를 유지하려고합니다. @ Hedde의 대답은 정확하지만 모델 필드를 여러 페이지에 표시하는 가장 좋은 방법은 아닙니다. –

관련 문제