当前位置: 首页 > 面试题库 >

Django查询-id vs pk

爱亮
2023-03-14
问题内容

编写Django查询时,可以同时使用id / pk作为查询参数。

Object.objects.get(id=1)
Object.objects.get(pk=1)

根据django的文档,我知道pk代表主键,它只是一个快捷方式。但是,尚不清楚何时应使用id或pk。


问题答案:

没关系 pk从实际的主键字段更加独立,即你不需要关心的主键字段是否被称为idobject_id或什么的。

如果你的模型具有不同的主键字段,则还可以提供更高的一致性。



 类似资料:
  • 在这一章中,你将学习 Django 如何连接到数据库,并将数据存储在里面。一探究竟吧! QuerySet 是什幺呢? 从本质上说,QuerySet 是给定模型的对象列表(list)。QuerySet 允许您从数据库中读取数据,对其进行筛选以及排序。 用例子来学习最容易的了。让我们试试这个,好吗? Django shell 打开你本地的终端(不是在Python解析器里面) 然后输入这个命令: (my

  • 本文向大家介绍基本的Django DB查询,包括了基本的Django DB查询的使用技巧和注意事项,需要的朋友参考一下 示例 Django ORM是功能强大的抽象,可让您从数据库存储和检索数据,而无需自己编写sql查询。 假设以下模型: 假设您已将以上代码添加到django应用程序中并运行migrate命令(以便创建数据库)。通过以下方式启动Django Shell 这将启动标准python sh

  • 问题内容: 如何在Django中查询全名? 为了明确起见,我本质上想创建一个临时列,将first_name和last_name组合在一起以给出一个全名,然后对它进行LIKE,如下所示: 上面的查询将返回所有名为John Smith的用户。如果可能的话,我想避免使用原始SQL调用。 我正在专门讨论的模型是django.contrib.auth.models用户模型。直接更改模型不是问题。 问题答案:

  • 问题内容: 我试图弄清楚如何在Django中编写“不在”风格的查询。例如,我正在考虑的查询结构将如下所示。 假设模型名为table1和table2,django语法会是什么样? 问题答案: 排除功能的作用类似于你要查询的运算符。该属性告诉查询以返回value_list一级列表。因此,…最后,你IDs将从中获得列表,你将用该列表定义用户中的条件,该条件将被exclude函数拒绝。

  • 问题内容: 我有点困惑如何使用在Django的。例如,一个对象Blog ,以及与该对象相关的attribute entry_set。是什么意思? 如果有人可以使用此示例显示可能的输出,我将不胜感激。 问题答案: 你看到的是反向相关的对象查找。 在你的示例中: 现在,给定类型为的对象,你将可以访问相关对象-这是一个正向关系。该是一个反向查找类变量的Django为你看跌期权。 因此,给定对象-你将执行

  • 问题内容: 建议的用于检查查询是否返回任何结果的惯用法是什么? 例: 我想有几种不同的检查方法,但是我想知道一个有经验的Django用户将如何做。文档中的大多数示例只是忽略了什么都没有发现的情况… 问题答案: