2012-03-30 3 views
2

제목이 비슷하지만 내 요구 사항을 충족시키지 못하고 내 사용자가 매우 다르기 때문에 다른 역할 만 잘 작동하지 않을 수 있습니다 stackoverflow.com에서 다른 질문을 참조하십시오 . 나는 한 포지션의 사용자가 다른 속성의 기능을 가진 회사 인 반면, 다른 포털은 자신의 프로필을 보여줄 수 있고 e.t.c를 재개 할 수있는 후보자 인 시나리오를 가지고있다. 그들은 다른 URL을 가질 것이다. 그래서 그들은 완전히 다르지만 공통점은 그들이 모두 등록 된 사용자라는 것입니다. 그들은 로그인 폼을 사용할 것이고, 그들은 비밀번호를 바꿀 것이고 나는 그 목적을 위해 User 클래스를 사용할 생각이다.더 좋은 방법은 장고에 여러 종류의 회원 프로필을 가지고

내가 직면 한 실제 문제는 약 UserProfile 클래스 사용법입니다. UserProfile은 프로필 용이지만 내 경우에는이 두 명의 사용자가 완전히 다르며 프로필에 여러 가지가 필요합니다. 또한 앞으로 시스템에 더 많은 사용자 유형을 추가 할 것입니다. 장고, 우리는 프로필에 대해 이야기하는 동안

AUTH_PROFILE_MODULE = ‘accounts.userprofile’ 

그래서 장고의 상속 또는 추상 클래스의 일종 또는 그래서 다른 방법을 사용하여이 작업을 수행 할 수있는 방법이있다 settings.py이 단일 모델을 추가하는 것입니다 의도 한 기능을 얻을 수 있고 장고를 사용할 수 있습니까 Profiles?

답변

2

편집 : 확인을 마친 후에 확인해주세요. 제 이전 대답은 명확하게 작동하지 않습니다.

나는 UserProfile 클래스를 추상화하는 것을지지했다. 그러나 그렇게하면 인스턴스화 할 수 없으므로 사각형으로 돌아갑니다.

그러나 다중 테이블 상속을 사용하여 원하는 것을 얻을 수 있습니다. 문서의 this과 영감을 제공 한 Quora thread을 참조하십시오.

내가 게시 한 코드는 메타 하위 클래스와 추상 변수를 제외하고 크게 변하지 않았습니다. 그들은`UserProfile` 클래스와 상호 작용하는 다른 장고 애플 리케이션이 프로필 클래스를 사용하도록

class UserProfile(models.Model): 
    # Some Stuff 

class CompanyProfile(UserProfile): 
    # Some more stuff 

class CandidateProfile(UserProfile): 
    # Even more stuff 
+0

은 그래서 나는 settings.py에 AUTH_PROFILE_MODULE''에서 설정 무슨? – Hafiz

+0

@Hafiz UserProfile을 설정 한 다음 다른 유형을 처리하기 위해 뷰에 논리를 삽입합니다. 그러나 크게 편집 할 때 내 대답을 다시 읽어주십시오. 내가 원래 제안한 해결책은 * 작동하지 않을 것이다. 새로운 것이해야합니다. – Todd

+0

문제는 get_profile()이 작동하지 않는다는 것입니다. – alan