0

我在 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 中保存了一个用户条目,但没有用户配置文件。什么交易?请帮忙。

4

1 回答 1

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/

于 2011-06-05T02:11:56.877 回答