내 Django 프로젝트에는 각 django 사용자에 대한 프로필이 있고 프로필은 정보 모델과 관련이 있습니다. 두 관계 모두 OneToOne입니다. 대부분 사용자의 프로필과 정보 모델을 모두 사용하고 있기 때문에 데이터베이스를 다시 히트하지 않기 위해 기본적으로 선택되도록하고 싶습니다. 장고 인증을 사용하여이를 수행 할 수있는 방법이 있습니까?OneToOne 필드와 관련된 자동 선택
5
A
답변
0
맞춤형 사용자 모델 용도로 django> = 1.5를 사용하십시오. 관련 기능을 선택하십시오.
user = User.objects.select_related('profile_related', 'info_related')
0
나는 잠시 여기에 왔다는 것을 알고 있지만 다른 사람이 비슷한 상황에 직면 할 경우를 대비하여 해결책을 추가하고 있습니다.
class ProfileManager(models.Manager):
# use_for_related_fields = True
def get_queryset(self):
return super(ProfileManager, self).get_queryset().select_related('user')
: 장고 (V1.8 심지어 V1.7 기준)의 프로필이 같은 관리자를 가질 수
사용자 매니저 (쿼리 할 때 사용 .objects)로 할 수 있습니다 그런 다음 모델 :
class Profile(models.Model):
user = models.OneToOneField(
User,
primary_key=True,
on_delete=models.CASCADE
)
# your fields ...
# the manager
objects = ProfileManager()
# ...
그런 다음
프로필에 대한 모든 쿼리도 자동으로 관련 사용자를 선택합니다.
정보 모델도 포함하도록이 코드를 확장 할 수 있습니다.
행운을 빈다.