我正在尝试扩展User模型,以便我可以添加自己的自定义字段,但我一直收到错误说明:
'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没有运气。
答案 0 :(得分:2)
首先:你绝对确定你在settings.py文件中输入了AUTH_PROFILE_MODULE的正确值吗?因为如果此用户没有UserProfile,则异常应该看起来不同。 (DoesNotExist)
无论如何:当时没有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
中描述的(松散)信号