2010-04-21 6 views
2

Django는 수퍼 클래스의 변수와 동일한 이름을 가진 변수를 Field 인스턴스로 사용하는 하위 클래스를 허용하지 않습니다.Django Inherited Field Access

내가 'department'라고 부르는이 변수를 수정하려면 서브 클래스가 필요합니다. 슈퍼 클래스와 서브 클래스를 호출하면 super에서 상속받은 부서 변수를 수정하려면 sub가 필요합니다. 내가 다시 선언하면, 장고는 필드 에러를 던진다. 물론, 내가하지 않으면, 부서는 재 할당의 범위에 있지 않습니다. super에 부서가 없다면 데이터베이스 오류가 발생합니다. (OBJ 타입) 슈퍼 : obj가

누구든지 방법이 작업을 수행하는 어떤 생각을 가지고 인스턴스 또는 유형의 하위 유형이어야합니다

def __init__(self): 
    super(theSuperClass, self).__init__() 

형식 오류 : 나는 초기화를 다시 작성하려고 할 때 이상한 행동을 얻을?

답변

2

super의 첫 번째 매개 변수는 수퍼 클래스가 아닌 클래스 (예 : 서브 클래스) 이어야합니다.

또한 __init__에 전달 된 인수를 전달해야합니다. 그래야합니다 :

class MySubClass(MySuperClass): 
    def __init__(self, *args, **kwargs): 
     super(MySubClass, self).__init__(*args, **kwargs) 
관련 문제