Django视图检索刚创建的实例的模型ID

时间:2018-11-07 02:44:28

标签: django django-models django-views

我有一个简单的场景,尝试检索在视图中创建的模型实例的id / pk。模型实例创建良好,但是id / pk返回“ None”。我以为我遵循的是最新documentation中列出的代码,但我一定做错了。

Models.py

class Userdownloads(models.Model):
    id = models.IntegerField(primary_key=True)
    created_by = models.ForeignKey(User,on_delete=models.DO_NOTHING, related_name='Download_created_by',null=True,blank=True)
    created_date = models.DateTimeField(auto_now_add=True)

Views.py

d = Userdownloads(created_by=request.user)
d.save()
print(d.id)

我已经尝试过d.idd.pk

有人可以帮我看看我要去哪里了吗?任何帮助深表感谢!

2 个答案:

答案 0 :(得分:0)

在给定示例的保存调用中,应引发如下错误:

  

“ id”列中的空值违反了非空约束

因此,此处的id字段应为AutoField。例如:

id = models.AutoField(primary_key=True)

从文档中

  

AutoField

     

一个IntegerField,它将根据可用的ID自动递增。您通常不需要直接使用它;一个主要的   如果您不这样做,关键字段将自动添加到您的模型中   否则指定

答案 1 :(得分:0)

您无需在Django模型上指定ID,因为它将自动为您创建。

class Userdownloads(models.Model):
    created_by = models.ForeignKey(User,on_delete=models.DO_NOTHING, related_name='Download_created_by',null=True,blank=True)
    created_date = models.DateTimeField(auto_now_add=True)

Here is the link to the models

如果没有显示,则表示该文件尚未保存到数据库。