다른 사용자 유형 (스태프, 교사, 학생)에 따라 다른 프로파일을 가지고 있다고 가정합니다.장고 여러 프로파일과 함께 AUTH_PROFILE_MODULE을 사용하는 방법?
get_profile
로 적절한 프로파일을 되 찾으려면 AUTH_PROFILE_MODULE
를 어떻게 지정합니까?
다른 사용자 유형 (스태프, 교사, 학생)에 따라 다른 프로파일을 가지고 있다고 가정합니다.장고 여러 프로파일과 함께 AUTH_PROFILE_MODULE을 사용하는 방법?
get_profile
로 적절한 프로파일을 되 찾으려면 AUTH_PROFILE_MODULE
를 어떻게 지정합니까?
이렇게 할 방법이 없지만 일반 키를 사용할 수 있습니다.
from django.contrib.contenttypes import generic
from django.contrib.contenttypes.models import ContentType
class UserProfileOne(models.Model):
pass
class UserProfileTwo(models.Model):
pass
class UserProfile(models.Model):
content_type = models.ForeignKey(ContentType)
object_id = models.PositiveIntegerField(db_index=True)
content_object = generic.GenericForeignKey('content_type', 'object_id')
예 : 당신이 더 많은 정보를 정기적으로 제공 할 수있는 경우
UserProfile.objects.create(content_object=any_profile_instance)
User(pk=1).get_profile().content_object.some_special_field
하는 것이 가능있을 때 더 나은 솔루션 :
여러 프로필을 사용하려고 더 많은 번거 로움이 될 수를 찾을 수 UserProfile의 단순한 구성으로
일반 외래 키로 UserProfile을 사용하거나 UserProfile을 완전히 차단하고 User 외래 키로 개별 모델을 만드는 것이 좋습니다.
이러한 추가 사용자 프로필에 많은 양의 데이터를 첨부하려면 UserProfile과 별도의 모델로 유지해야합니다. UserProfile에 대한 저의 개인 의견은 멋진 집이없는 사용자 데이터의 덤핑 장이 될 수 있다는 것입니다.
데이터가 프로필 정보 인 것처럼 보이기 때문에 UserProfile을 사용해야한다고 생각하지 마십시오. 나는 UserProfile이 모든 문제를 해결하려고 의도 된 적이 없다고 생각합니다. 나는 이것을 User 모델의 코드가 django 코드하에 있다는 사실을 보완하는 방법으로 본다. 그리고 우리는 사용자 데이터를 추가하기 위해 일반적으로 엉망이되지 않는다.
이 기능은 상속 된 프로필에서 작동합니다. – goh
그것은 모든 콘텐츠 유형을 가리킬 수 있습니다. – programmersbook