当我向AbstractBaseUser
模型提供任何字段时,这两者之间的区别是什么?User
的目的是什么?哪一个最好与python-social-auth
一起使用?
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()
答案 0 :(得分:3)
AbstractUser
是User
模型的子类。因此,单个模型将包含本地User
字段以及您定义的字段。
将字段指定为等于User
,即user=models.ForeignKey(User)
正在创建从一个模型到User
模型的连接。
您可以使用其中任何一种,但django的推荐方法是创建连接,因此使用=> user=models.ForeignKey(User)
子类的正确模型是django.contrib.auth.models.AbstractUser
,如文档中所述:
https://docs.djangoproject.com/en/1.6/topics/auth/customizing/#extending-django-s-default-user