Django - 获取最后插入的ID
我无法像往常一样获取最后插入的ID,不太明白为什么。
在我的视图中:
comment = Comments( ...)
comment.save()
comment.id #returns None
在我的模型中:
class Comments(models.Model):
id = models.IntegerField(primary_key=True)
有没有人遇到过这个问题?通常在我调用save()方法后,我可以通过comment.id来获取ID,但这次却不行。
4 个回答
2
要定义一个自动设置的主键,可以使用AutoField:
class Comments(models.Model):
id = models.AutoField(primary_key=True)
5
简单来说,你只需要这样做:
c = Comment.object.latest()
这样就能给你返回最后插入的评论了。
c.pk
12 #last comment saved.
9
你在这行代码 comment = Comments( ...)
中设置 id
字段的值了吗?如果没有,那你为什么要自己定义这个字段,而不让Django自动处理主键呢?Django会用一个叫AutoField的东西来自动生成主键。
如果你像例子中那样把主键指定为一个整数类型(IntegerField),Django就不会自动给它赋值了。