我的方法是扩展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
答案 0 :(得分:2)
当您需要更改django提供的现有用户模型时,您只能从AbstractUser继承,并且我在您的代码中看不到任何需要它的内容。
除此之外我不认为从User继承是一个好主意。 你应该像往常一样从models.Model继承,并为用户提供OneToOneField。
查看此在线图书以获取更多指导: http://www.tangowithdjango.com/book/chapters/login.html