2013-08-13 3 views
1

나는 이런 종류의 클래스를 상속받을 수 있을까?파이썬 클래스 외래 키 상속

부여 됨으로써

, 내가이 개 추상 클래스가 있습니다

class Book(models.Model): 
     name = models.TextField() 

     class Meta: 
      abstract = True 

    class Page(models.Model) 
     num = models.IntegerField() 
     book = models.ForeignKey('Book') 

     class Meta: 
      abstract = True 

그래서 - 나는이 두 가지에 대한 상속 클래스를 만들고 싶어를, 그들이

하지만 난 경우 BigBookPage BigBook 및 하자 그렇게하면, 파이썬은 내 FK 필드가 추상적 모델과 관계를 가질 수 없다는 것을 나에게 말한다. 그리고 상속 된 모델에서 FK를 재정의하는 방법을 찾을 수 없습니다. 부모님이 아닌 상속 된 모델에서만 외래 키를 만들어야합니까?

부모 모델에서 정의 된 외래 키를 사용하는 동일한 모델 메서드가있는 경우 ... 모든 자식으로 이동해야하므로 외래 키를 사용할 수 있습니까?

답변

1

책을 proxy = True로 표시하려는 것 같습니다. proxy models을 참조하십시오. 책 모델을 만들지 만, 상속받은 다른 모델을 사용하여 하위 클래스의 기능을 사용자 정의 할 수 있습니다.

class Book(models.Model): 
    class Meta: 
     proxy = True 

class BigBook(Book): 
    # BigBook properties go here.