首页 文章

使用Django中的自定义字段扩展用户模型

提问于
浏览
1

我试图扩展用户模型,以便我可以添加自己的自定义字段,但我不断收到错误说明:

'NoneType'对象没有属性'_default_manager'

每当我尝试使用

user.get_profile()

将值添加到自定义字段,即每当我像这样使用它时:

user = User.objects.create_user(用户名,电子邮件,密码)user.first_name = fname user.last_name = lname user.save()uinfo = user.get_profile()uinfo.timezone =“Asia / Pune”uinfo.save( )

我已经按照Extending the User model with custom fields in Django给出的步骤没有运气了 .

1 回答

  • 2

    首先:你绝对确定你在settings.py文件中输入了正确的AUTH_PROFILE_MODULE值吗?因为如果此用户没有UserProfile,则异常应该看起来不同 . (不存在)

    无论如何:那时没有UserProfile对象,因为它不是自动生成的 . 因此get_profile()会在您的情况下引发异常 .

    要么这样做:

    if not UserProfile.objects.filter(user=user):
        p = UserProfile(user=user)
        p.save()
    uinfo = user.get_profile()
    ...
    

    或创建一个信号(松散地)描述于http://docs.djangoproject.com/en/dev/topics/auth/#storing-additional-information-about-users

相关问题