Android 使用更多属性扩展django auth.models.User

Android 使用更多属性扩展django auth.models.User,android,python,django-users,Android,Python,Django Users,我扩展django的auth.models.User的方法正确吗?我应该继承自AbstractUser还是User? 这是我现在实现它的方式:但是我是否应该考虑将OnToeOnfield从用户配置文件连接到用户表? from django.contrib.auth.models import User PHONE_LENGTH = 13 NAME_LENGTH = 100 ########################### ### User Profile #############

我扩展django的auth.models.User的方法正确吗?我应该继承自
AbstractUser
还是
User
? 这是我现在实现它的方式:但是我是否应该考虑将OnToeOnfield从用户配置文件连接到用户表?

from django.contrib.auth.models import User

PHONE_LENGTH = 13
NAME_LENGTH = 100


###########################
### User Profile 
###########################
class UserProfile(User):
    """ inherits from AbstractUser in Django - mainly used for authentication"""
    # other fields here
    phone = models.CharField(max_length=PHONE_LENGTH)  #optional
    mobile = models.CharField(max_length=PHONE_LENGTH) #requried 

    # foreign key
    subscription_type = models.ForeignKey(SubscriptionType)

    def __str__(self):
        return "%s's profile" % self.user

只有当您需要更改django提供的现有用户模型时,才能从AbstractUser继承,而我在您的代码中没有看到任何需要这样做的内容

除此之外,我不认为从用户继承是个好主意。 您应该像往常一样从models.Model继承,并为用户创建一个OneToOneField

有关更多指南,请参阅本在线书籍: