我有一个简单的场景,尝试检索在视图中创建的模型实例的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.id
和d.pk
有人可以帮我看看我要去哪里了吗?任何帮助深表感谢!
答案 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
如果没有显示,则表示该文件尚未保存到数据库。