Django 主键

1 投票
2 回答
10332 浏览
提问于 2025-04-15 18:15

在Django中,当你查询数据,比如用 People.objects.all(pk=code) 这个命令时,pk=code 的意思是什么呢?

这里的 pk 是“主键”的缩写,主键是用来唯一标识每一条记录的一个字段。简单来说,就是每个人都有一个独特的编号,像身份证号码一样。code 就是你想要查找的那个特定人的主键值。通过这个命令,Django会帮你找到主键为 code 的那个人的信息。

相关问题:

2 个回答

7

当你使用 People.objects.all(pk=code) 这个命令时,里面的 pk=code 会被忽略,结果会返回所有的 People 对象。

而如果你使用 People.objects.get(pk=code) 这个命令,系统会返回 pk=code 对应的那个 People 对象,如果找不到的话,就会报错。

5

这是一个查询,用来获取一个名为“People”的对象,这个对象的主键是“code”的值。

默认情况下,所有Django模型的实例都有一个主键,用来唯一标识这个对象。一般来说,这个主键是一个自动递增的整数,但你也可以自定义它,只要确保它是唯一的就行。

http://docs.djangoproject.com/en/dev/topics/db/models/#id1

补充:现在我仔细看了一下代码片段,而不是仅仅假设它的意思,发现这并不太合理。这里的all()方法应该用get()。因为all()方法是用来返回所有该类型对象的,给它一个主键没有意义。

http://docs.djangoproject.com/en/dev/ref/models/querysets/#all http://docs.djangoproject.com/en/dev/ref/models/querysets/#id5

撰写回答