Django ORM - 使用.get或索引QuerySet的模型对象

时间:2018-01-11 21:08:22

标签: django django-orm

my_model = MyModel.objects.get(pk=5)

因此'my_model'不是查询集对象,如果我从查询集索引它,它也不会。除了表格中的对象列表之外,QuerySet还有什么特别之处吗?

另外我想知道,我知道简单地创建一个QuerySet不涉及数据库查找,但是如何只获取一个像'my_model'中的对象呢?

1 个答案:

答案 0 :(得分:1)

查询集是最基本意义上的“对象列表”,但它也有相当数量的普通列表无法使用的方法。

the source code

例如,您可以进一步过滤查询集以生成另一个查询集。您可以查看查询集生成的SQL,您可以从查询集中获取聚合。

  

我知道简单地创建QuerySet不涉及数据库   查找

对帐户集进行了延迟评估。这意味着他们在需要之前不会访问数据库。因此,在您的示例中,“只获取一个模型”需要从数据库中获取信息。

导致查询实际查找数据库的其他事情将是实际需要存储在数据库中的信息的任何内容 - 因此迭代查询集,在模板中呈现值,调用列表(my_queryset)或计数() 方法。链接顶部有一个部分我发布了这个部分。