在使用Django的时候,我们有时候会发现 objects.get(id=id) 和 objects.get(id=pk) 得到的解结果是一样的,那么通过pk 和id 来进行操作有什么区别呢?
其实在我们创建一个新的models实例时,如果我们没有设置主键,那么Django会自动帮我们创建一个id字段作为该模型的主键,所以这个时候,pk 也就等于 id 了.如果我们想要自己设置一个主键比如姓名,那么我们可以在实例化字段的时候,将primary_key设置为True 即:
name = models.CharField(max_length=30,primary_key=True)
那么这个时候,id就不是主键了,则id 和name查询到的就不太一样了.
是使用id还是使用pk查找呢?
最新推荐文章于 2024-03-02 00:38:19 发布
本文探讨了在Django框架中使用ORM进行数据库操作时,主键(pk)与默认id的区别。当未指定主键时,Django会自动生成id字段作为主键;若自定义主键如姓名字段并设置primary_key=True,则id不再是主键,通过id和自定义主键查询的数据将不同。
13

被折叠的 条评论
为什么被折叠?



