2011-10-26 3 views
6

나는 모델을 auth.User 객체에 직접 결합하는 것에 대한 사람들의 생각이 사용자의 프로파일 모델에 대한 것인지 궁금합니다.ForeignKey to Django User 또는 Profile 모델을 사용해야합니까?

저는 내 사용자가 내 앱에 추가하는 몇 가지 유형의 모델을 저장하고 있습니다. 앱 사용자는이 모델에 대한 기준을 통해 다른 사용자를 검색합니다.

한편으로는 사용자에게 곧바로 가입하면 사용자 레코드를 가져올 필요가있을 때마다 request.user.get_profile()을 수행 할 필요가 없다고 생각합니다. 사용자가 항상 프로파일을 가지고 있다는 것을 전제로합니다 (그들은 mo에서 내 앱에서하지만 여전히 그렇습니다). 이렇게하면 프로필 모델에는 사용자의 연락처 세부 정보 만 포함됩니다.

다른 한편으로, 나는 다른 모델을 찾을 때 프로필 (예 : 이름, 위치)의 값이 필요할 것으로 생각합니다.

아무리 의심 할 여지가 없으므로 어쨌든 다른 사람의 생각이 궁금합니다.

감사합니다.

루도.

답변

1

일반적으로 앱을 재사용 할 수 있도록하려면 사용자 모델에 외래 키를 생성하십시오.

이미 말했듯이 대부분의 경우 사용자 및 프로필 인스턴스가 필요하므로 여러 데이터베이스 쿼리를 방지하려면 캐시를 사용하십시오.

재사용이 적절하지 않은 경우 프로필에 외래 키를 생성하고 select_related()를 사용하여 단일 쿼리로 User 인스턴스를 가져옵니다.

2

사용자 모델에 외래 키를 생성하는 것도 좋습니다. 보기에서 사용자 개체로 작업 할 때 더 간단하게 작업 할 수 있습니다. 따라서 프로필 모델을 거치지 않고도 request.user.foo_set 등과 같은 작업을 수행 할 수 있습니다.

+0

나는 그것을 고려하지 않았다. 건전한 조언. – sleblanc

관련 문제