我无法像往常一样得到最后一个插入ID,我不知道为什么。
在我看来:
comment = Comments( ...)
comment.save()
comment.id #returns None
在我的模型中:
class Comments(models.Model):
id = models.IntegerField(primary_key=True)
之前有没有人遇到这个问题?通常在我调用save()方法之后,我可以通过comment.id访问id,但这次它不起作用。
答案 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字段?