2011-04-29 5 views
1

내 django 프로젝트에 대한 사용자 인증을 설정하려고하는데 데이터베이스 오류가 계속 발생합니다. UserProfile_User가 존재하지 않습니다. 대부분의 예제를 온라인에서 시도했지만 아무도이 문제를 해결하지 못했습니다. 아래는 현재 시도하고있는 코드입니다. 모든 관련 포인터 크게 감사하겠습니다. 내가 현재 시도하고있는 사용자 프로필 모델.Django 사용자 인증

from datetime import datetime 
    from django.db import models 
    from django.contrib.auth.models import User 


    class UserProfile(models.Model): 
     user = models.OneToOneField(User)  
     dob = models.DateField(default=datetime.today().year - 18) 

     def __unicode__(self): 
      return ('%s' % (self.user.username)) 

답변

1

이 경우에는 OneToOneField을 사용하는 것이 좋지만 프로필 작성을 의미하지는 않습니다.

from django.contrib.auth.models import User 
from django.db.models.signals import post_save 

def user_post_save(sender, instance, created, **kwargs): 
    # Creates user profile 
    if created: 
     profile, new = UserProfile.objects.get_or_create(user=instance) 

post_save.connect(user_post_save, sender=User) 

그냥 UserProfile 정의 아래에 models.py에 포함 할 것이며, 모든 사용자가 그와 관련된 프로파일이 있는지 확인합니다 : 그것은 신호에 의해 생성 된 프로파일을 가지고 매우 간단합니다.

0

나는 OneToOneField를 사용하지 않습니다,하지만 내 생각 엔 그것 (사용자와 프로파일) 모두의 양방향 존재를 요구하고 있다는 것이다. 둘 중 하나가 존재하지 않으면 예외를 발생시킵니다. 어쩌면 당신은 ForeignKey으로 더 좋습니다.

관련 문제