我正在扩展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?请帮忙。
答案 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/