【问题标题】:django not returning any value for .id or .pkdjango 没有为 .id 或 .pk 返回任何值
【发布时间】:2017-08-17 14:17:38
【问题描述】:

我只是逐字阅读 Django 教程之一,遇到了 x.id.pk 查询的问题,根本没有返回任何值。尽管所有其他数据都在工作,但该表中的所有行都是如此。下面的示例取自我的 python shell。

>>> c = Album(artist="Stone Roses", album_title="The Stone Roses", genre="Indie", album_logo="http://www.classicrockreview.com/Images/1989/AlbumCovers/1989_StoneRos    es.jpg")

>>> c
<Album: Album object>
>>> c.id
>>> c.artist
'Stone Roses'
>>> c.pk
>>> 

我被引导相信id 是由 Django 自动处理的?

【问题讨论】:

  • 在检查 id 之前是否保存了对象?
  • 我做了,这只是作为一个例子。尝试擦除并启动一个全新的数据库和同样的事情。
  • 这是我尝试正确保存得到的结果:>>> a = Album(artist="Oasis", album_title="Definitely Maybe",genre="Indie", album_logo="none" ) >>> a.save > >>> – user8467470 3 分钟前编辑
  • 对不起 - 我是个白痴!我忘记了保存时的括号

标签: django django-models


【解决方案1】:

您的Album 对象当前未保存到数据库中,因此它还没有id。您需要致电 object.save() 来执行此操作:

>>> c = Album(...)
>>> c.id      # Object is not yet saved to the database so it has no id
None
>>> c.save()  # Save object to the database
>>> c.id      # Object's valid id

请参阅Django model instance reference docs 以获得更详细的说明。

【讨论】:

  • 谢谢 - 我没有那个,但有 a 和 b,除了 a.id b.id 等之外我可以调用
  • 啊,我刚刚注意到保存中的以下消息:
  • >>> a = Album(artist="Oasis", album_title="Definitely Maybe", Genre="Indie", album_logo="none") >>> a.save >>>
  • 对不起 - 我是个白痴!我忘记了保存时的括号
猜你喜欢
  • 2020-11-24
  • 2016-02-12
  • 1970-01-01
  • 1970-01-01
  • 2016-04-14
  • 1970-01-01
  • 2014-09-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多