2014-11-20 5 views
3

이 두 가지의 차이점은 무엇이며 User 모델에 어떤 필드를 줄 수있을 때 AbstractBaseUser의 목적은 무엇입니까? 어느 것이 python-social-auth과 함께 사용하는 것이 더 낫습니까?Django에서 "AbstractBaseUser"를 사용하는 경우?

class User(models.Model): 
    username = models.CharField(max_length=50) 
    is_active = models.BooleanField(default=True) 
    full_name = models.CharField(max_length=100) 
    date_of_birth = models.DateField() 

class MyUser(AbstractBaseUser): 
    username = models.CharField(max_length=50) 
    is_active = models.BooleanField(default=True) 
    full_name = models.CharField(max_length=100) 
    date_of_birth = models.DateField() 

답변

2

AbstractUser 서브 클래스 User 모델. 따라서이 단일 모델에는 고유 한 User 필드와 정의한 필드가 있습니다.

필드를 User과 같이 할당하면 user=models.ForeignKey(User)과 같이 하나의 모델에서 User 모델로 조인이 생성됩니다.

당신은 사용 중 하나지만, 장고에 권장되는 방법은 그렇게 사용하여 조인을 만드는 것입니다 수 =>user=models.ForeignKey(User)

sublclass하는 올바른 모델 문서에서 여기에서 언급 한 바와 같이 django.contrib.auth.models.AbstractUser입니다 :

https://docs.djangoproject.com/en/1.6/topics/auth/customizing/#extending-django-s-default-user

+0

'AbstractBaseUser' 대신'AbstractUser'를 사용하는 것 같아요. 하지만 요점이 있어요. 고맙습니다. – norbertpy

+0

@norbertpy 문서 링크가 포함 된 편집을 추가했습니다. 그 점을 지적 해 주셔서 감사합니다. –

+0

[This answer] (http://stackoverflow.com/questions/21514354/difference-between-abstractuseruser-and-abstractbaseuser-in-django)에서 설명한 것처럼 AbstractUser와 AbstractBaseUser의 차이점을 이해하는 것이 중요합니다. # 21514469). –

관련 문제