扩展django用户模型

时间:2011-06-04 15:59:08

标签: django extending

我正在扩展django中的User对象并拥有用户配置文件。因此,使用post_save挂钩,我以下列方式保存用户配置文件:

class UserProfile(models.Model):
    user = models.OneToOneField(User)

def create_user_profile(sender, instance, created, **kwargs):
    if created:
        userObj, createdUser = UserProfile.objects.get_or_create(user=instance)

post_save.connect(create_user_profile, sender=User)

通过python manage.py shell运行shell时,它工作正常;在表中保存用户对象和用户配置文件,但如果我通过启动请求进行测试,则在处理该请求的views.py中执行以下操作

def handleRequest(request):
    user = User(username="test",email="test",password="test")

    user.save()

当然我创建了一个HttpResponse并返回了一个响应,但为了简洁省略了它。结果是我在auth_user中保存了一个用户条目,但没有用户配置文件。什么是dealy?请帮忙。

1 个答案:

答案 0 :(得分:1)

无法访问用户个人资料,因为您在用户个人资料中是一种关系。

您需要添加字段。

class UserProfile(models.Model):
    url = models.URLField()
    home_address = models.TextField()
    phone_numer = models.PhoneNumberField()
    user = models.ForeignKey(User, unique=True)

有关更多信息,请查看以下链接

http://www.b-list.org/weblog/2006/jun/06/django-tips-extending-user-model/