我有点困惑如何使用_set
在QuerySet
Django的。例如,一个对象Blog b
,以及与该对象Entry
相关的attribute entry_set。是什么意思b.entry_set.all()
?
如果有人可以使用此示例显示可能的输出,我将不胜感激。
你看到的是反向相关的对象查找。
在你的示例中:
class Blog(models.Model):
pass
class Entry(..):
blog = Blog(..)
现在,给定e
类型为object
的对象Entry
,你将e.blog
可以访问相关对象Blog
-这是一个正向关系。该_set
是一个反向查找类变量的Django为你看跌期权。
因此,给定对象b
-你将执行以下操作:
entries = b.entry_set.all()
反向查询集的原因是,ForeignKey是1-to-many
关系。因此,相反是一个查询集。
未指定_set
时,该对象可用。related_name
问题内容: 我试图弄清楚如何在Django中编写“不在”风格的查询。例如,我正在考虑的查询结构将如下所示。 假设模型名为table1和table2,django语法会是什么样? 问题答案: 排除功能的作用类似于你要查询的运算符。该属性告诉查询以返回value_list一级列表。因此,…最后,你IDs将从中获得列表,你将用该列表定义用户中的条件,该条件将被exclude函数拒绝。
问题内容: 建议的用于检查查询是否返回任何结果的惯用法是什么? 例: 我想有几种不同的检查方法,但是我想知道一个有经验的Django用户将如何做。文档中的大多数示例只是忽略了什么都没有发现的情况… 问题答案:
问题内容: 如何在Django中查询全名? 为了明确起见,我本质上想创建一个临时列,将first_name和last_name组合在一起以给出一个全名,然后对它进行LIKE,如下所示: 上面的查询将返回所有名为John Smith的用户。如果可能的话,我想避免使用原始SQL调用。 我正在专门讨论的模型是django.contrib.auth.models用户模型。直接更改模型不是问题。 问题答案:
问题内容: 我试图创建一个查询集以获取DateTimeField的值,该值是数据库中的DATETIME。 models.py中的类: 数据库中的字段: 元组已填充到数据库中,并且直接在DB上运行SQL查询运行良好。 这是我当前在Django中使用的查询集: 我已经尝试过原始查询以及使用exclude()的查询版本,但是对于日期仍然返回None。 我正在通过for循环访问queryset中的条目,并
问题内容: (这是SQL连接时线程的django版本:选择一对多关系中的最后一个记录) 假设我有一个客户表和一个采购表。每次购买都属于一个客户。我想获得所有客户的清单以及他们的上一次购买。是否可以在没有原始SQL且没有多个数据库查询的情况下完成? 问题答案: 您可以看一下类似的讨论: 从不同类别获取最新对象的Django查询 据我所知,在Django ORM中没有单步执行此操作的方法。 但是您可以
问题内容: 我正在尝试找到一种方法来缓存不会随频率变化的查询结果。例如,来自电子商务的产品类别(手机,电视等)。我正在考虑使用模板片段缓存,但是在这个片段中,我将遍历这些类别的列表。该列表在网站的任何部分都可用,因此在我的文件中。渲染模板时是否总是要发送类别列表?还是有更动态的方法来执行此操作,以使列表始终在模板中可用? 问题答案: 将缓存的查询弹出到Django的缓存中: 然后创建一个上下文处理