【问题标题】:How do I assign an id/pk number to an existing user?如何为现有用户分配 id/pk 编号?
【发布时间】:2020-06-08 05:04:22
【问题描述】:

第一次发帖,新程序员。原谅我的无知!

我正在尝试在 python shell 的用户表中查询用户的 id/pk,但它告诉我我的用户没有该属性。我以为那是自动创建的?

既然显然不是,我如何为现有用户分配 ID 号,以及如何确保今后自动为新用户分配 ID 号?

提前致谢!

>>>user = User.objects.filter(username='alice')
>>>user
<QuerySet [<User: alice>]>
>>>user.id
Traceback (most recent call last):
File "<console>", line 1, in <module>
AttributeError: 'QuerySet' object has no attribute 'id'
>>> user.pk
Traceback (most recent call last):
  File "<console>", line 1, in <module>
AttributeError: 'QuerySet' object has no attribute 'pk'

【问题讨论】:

标签: python django


【解决方案1】:

您的user 变量是QuerySet,而不是User 对象。 User.objects.filter(...) 返回 QuerySet。您可以看到这一点,因为输出结果是[&lt;User: alice&gt;](一个列表),而不是&lt;User: alice&gt;(一个用户)。

错误还说:“QuerySet 对象没有属性 'id'”它没有说“用户 对象没有属性 'id'”。即读取错误

要获取特定用户,请使用get():User.objects.get(username='alice')。请注意,如果对象不存在,get() 将引发异常。

查看QuerySets 上的文档以了解哪些方法返回查询集以及哪些返回对象。

【讨论】:

  • 非常感谢,这很有帮助。我确实尝试阅读错误,但我仍在学习绳索。
猜你喜欢
  • 2018-12-05
  • 1970-01-01
  • 2014-08-19
  • 2018-08-21
  • 1970-01-01
  • 1970-01-01
  • 2011-09-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多