2013-06-02 3 views
0

에 대한 제 3 자 응용 프로그램 하위 클래스에 추가하고자하는 타사 응용 프로그램이 있다고 말하면 ThirdPartyClass이라고 할 수 있습니다. genereal 사용자를 생성하기 위해이 클래스를 서브 클래스 화하고,보다 구체적인 사용자를 위해 일반 사용자를 서브 클래스화할 수있는 유연성을 갖기를 원합니다. 내가 AbstractUser을 하위 클래스로 원하는대로 분명히Django 서브 클래스 사용자 모델

class GeneralUser(ThirdPartyClass): 
    user = models.OneToOneField(
      settings.AUTH_USER_MODEL) 
    # general fields would go here 


class SpecificUser(GeneralUser): 
    # specific fields would go here 

는,이 작동하지 않습니다

models.py : 그것은 다음과 같이 보일 것인가? 어쩌면 이것이 올바른 접근 방식이 아닐 수도 있습니다. 이것에 대한 해결책이 있습니까?

사이드 노트 : 제가 생각한 써드 파티 어플리케이션은 here입니다. 어쨌든,이 대답은 제 3 자 앱에 대한 세부 사항없이 해결 될 수 있지만 다른 선택 사항이 없다면 무엇이든지 완료되면 받아 들여질 것입니다! 감사합니다.

+0

나는 당신의 질문을 이해하지 않습니다. 우선, OOP에서 _inheritance_이 작동한다고 믿는 것처럼, 이것이 작동하지 않는다는 것이 "명백한"것은 아닙니다. 왜 파생 클래스에서'user' 필드를 재정의 했습니까? – kirelagin

+0

파생 된 클래스에서'user' 필드를 재정의하고 편집하고 수정하는 것을 의미하지 않았습니다. 이 상속 모델은 작동하지만이 예제에서는'AbstractUser'가 서브 클래 싱되지 않았습니다. 그건 내가 장고'사용자'로 등록하고자하기 때문에 문제입니다. – Joker

+0

'ThirdPartyClass'가'AbstractUser'의 서브 클래스 인 경우 클래스는 또한 클래스를 암시 적으로 서브 클래스 화합니다. 'ThirdPartyClass'가'AbstractUser'를 서브 클래스 화하지 않으면 클래스에서 그것을 명시 적으로 서브 클래스 화하십시오. – kirelagin

답변

0

ThirdPartyClass 서브 클래스 AbstractUser 인 경우 이미 완료되었습니다.

하지 않는 경우, 자신의 클래스를 서브 클래 싱 경우

class GeneralUser(ThirdPartyClass, AbstractUser): 
    # ... 
관련 문제