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

时间:2014-09-21 14:39:37

标签: android python django-users

我的方法是扩展django的auth.models.User吗?我应该继承AbstractUser还是User? 以下是我现在实现它的方法:但是我应该考虑让OneToOneField从UserProfile连接到User表吗?

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

1 个答案:

答案 0 :(得分:2)

当您需要更改django提供的现有用户模型时,您只能从AbstractUser继承,并且我在您的代码中看不到任何需要它的内容。

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

查看此在线图书以获取更多指导: http://www.tangowithdjango.com/book/chapters/login.html