Django - 最后一个插入ID

Joe*_*Joe 5 python django

我不能像往常一样得到最后一个插入ID,我不知道为什么.

在我看来:

comment = Comments( ...)
comment.save()
comment.id #returns None
Run Code Online (Sandbox Code Playgroud)

在我的模型中:

class Comments(models.Model):
    id = models.IntegerField(primary_key=True)
Run Code Online (Sandbox Code Playgroud)

有没有人遇到过这个问题?通常在我调用save()方法之后,我可以通过comment.id访问id,但这次它不起作用.

Ste*_*osh 7

你在线上设置id字段的值comment = Comments( ...) 吗?如果没有,为什么要定义字段而不是让Django使用AutoField来处理主键?

如果你在IntegerField中指定为主键,就像你在示例中所做的那样,Django不会自动为它赋值.


小智 5

简单地做

c = Comment.object.latest()
Run Code Online (Sandbox Code Playgroud)

那应该返回你最后插入的评论

c.pk

12 #last comment saved.
Run Code Online (Sandbox Code Playgroud)

  • 那应该是`objects`,而不是`object`。 (2认同)