Python Django用户ID字段
我正在使用以下代码创建新的用户对象:Python Django用户ID字段,python,django,postgresql,Python,Django,Postgresql,我正在使用以下代码创建新的用户对象: user = User(username=new_data['username'], email=new_data['email'], first_name=new_data['email']) user.save() user_id = user.id 现在,我需要将用户id检索到一个名为user\u id的变量中。但是,当我这样做时,user\u id的值为“Nothing”。但是,当我查看数据库时,我可以看到数据库中新创建的用户条目 如何获取用户记录
user = User(username=new_data['username'], email=new_data['email'], first_name=new_data['email'])
user.save()
user_id = user.id
现在,我需要将用户id检索到一个名为user\u id的变量中。但是,当我这样做时,user\u id的值为“Nothing”。但是,当我查看数据库时,我可以看到数据库中新创建的用户条目
如何获取用户记录的id?试试看
user\u id=user.pk
而不是
user\u id=user.id
如果要创建用户,可以尝试以下操作:
user = User.objects.create_user(username=new_data['username'], email=new_data['email'])
print user.pk #Already works as create_user saves the new instance.
user.first_name = new_data['email'] #Can't assign to first_name in create_user.
user.save()
print user.pk #Will work.
顺便说一下,这也规范了电子邮件地址&all
如果您需要分配其他参数,例如名字,只需使用您的用户变量,分配给这些值,然后保存
如果您想了解更多有关此方面的信息,您应该阅读有关模型管理器的内容。这不是django特有的,但请查看SQLAlchemy对
PostgreSQL
返回的的处理:
我不知道你是如何强迫Django的ORM使用它的,但是SQLA正在利用pscopg2来获得返回的支持。这应该是可行的。你能用一个新的会话再试一次,并在这里复制/粘贴完整的输出吗?我最后要做的是:user=user.objects.create_user(username=new_data['username'],email=new_data['email'])user.set_password(new_data['password'])user.first_name=new_data['first_name']user.userid=user.pk user\u id=user.pk user.save()您好,谢谢您的建议。不幸的是,这似乎有着完全相同的结果。你帮了我,伙计。谢谢,这帮了我很多,只是没用。我不得不稍微改变一下。解决方案是:user=user.objects.create_user(…是的,当然,如果我没有写,很抱歉,我写这篇文章的时候一定有点离谱!很高兴它有帮助:)