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(…是的,当然,如果我没有写,很抱歉,我写这篇文章的时候一定有点离谱!很高兴它有帮助:)