Django 用户 ID 字段

ral*_*lfe 6 python django postgresql

我使用以下代码创建一个新的 User 对象:

user = User(username=new_data['username'], email=new_data['email'], first_name=new_data['email'])
user.save()
user_id = user.id
Run Code Online (Sandbox Code Playgroud)

现在,我需要将用户的 id 检索到名为 user_id 的变量中。但是,当我这样做时,user_id 的值为“Nothing”。但是,当我查看数据库时,我可以在数据库中看到新创建的用户条目。

如何获取用户记录的id?

pvo*_*ten 5

尝试

user_id = user.pk

代替

user_id = user.id


Tho*_*zco 3

如果你想创建一个用户,你可以尝试以下操作:

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.
Run Code Online (Sandbox Code Playgroud)

顺便说一句,这也规范了电子邮件地址等。

如果您需要分配其他参数,例如名字,只需使用您的用户变量,分配给这些值,然后保存。

如果您想了解更多相关信息,您应该阅读有关模型管理器的内容。