Django - 最后一个插入ID

时间:2009-07-21 19:12:18

标签: python django

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

在我看来:

comment = Comments( ...)
comment.save()
comment.id #returns None

在我的模型中:

class Comments(models.Model):
    id = models.IntegerField(primary_key=True)

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

4 个答案:

答案 0 :(得分:7)

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

如果你在IntegerField中指定为主键,那么Django就不会自动为它赋值。

答案 1 :(得分:2)

要定义自动设置的主键,请使用AutoField:

class Comments(models.Model):
    id = models.AutoField(primary_key=True)

答案 2 :(得分:2)

简单地做

c = Comment.object.latest()

这应该会返回最后插入的评论

c.pk

12 #last comment saved.

答案 3 :(得分:1)

您是否要专门设置一个名为id的新IntegerField作为主键?因为Django已经为你免费提供了这个......

话虽如此,您是否尝试从评论模型中删除id字段?