在尝试将数据添加到UserProfile模型时,我遇到了一些障碍,该模型是为了保存用户信息,而不是django内置的Auth组件中的信息。
我的问题是如何获取刚刚注册的用户实例以创建UserProfile?我以为它会像下面这样:
# Registration form validation etc. is complete
cd = form.cleaned_data
user = User.objects.create_user(username=cd['username'], password=cd['password'])
new_user = user.save() # hoping this returns an instance of the user?
activation_key = some_random_generator()
new_profile = UserProfile(user=new_user, token=activation_key)
new_profile.save()
...但是new_user返回为None,我认为必须有一种简单的方法来访问刚注册的用户而不是根据用户名/密码重新查询数据库?
我希望这很清楚,感谢任何帮助/指导。
答案 0 :(得分:1)
解决了我自己的问题。学习python / django的日子很慢。
当调用user.save()时,在数据库插入后用新信息更新用户对象 - 即新生成的user.id。所以这个用户对象本身实际上可以传递给UserProfile()。