快速,持续,稳定,傻瓜式
支持Mysql,Sqlserver数据同步

django中数据库ORM操作

在线QQ客服:1922638

专业的SQL Server、MySQL数据库同步软件

跨多值关系

当您基于\ 多对多字段 \对象或反向外键 过滤时,有两种不同的过滤方法值得注意。对于博客 \和条目 关系( 博客 tt> 对于条目 是(一对多关系),我们可能想找到一个博客,该博客必须包含一个满足以下条件的条目:在该条目中,标题包含" Lennon"。发行日期是2008年。或者我们可能想找到一个博客。该博客必须满足以下条件:包括带有" Lennon"的条目。在标题中,并包含一个发布日期为2008年的条目。因为一个 Blog \对应于多个条目 \ nbsp;上述两种查询都是可能的。在某些情况下很有用。

同样, 多对多字段 \会造成类似的情况。例如,假设条目 \字段具有称为标签的多对多字段。 (标签)。我们可能想要查找同时具有"音乐"的条目。标记和"带"标记。或者,我们可能还想查找标记为\\\的条目。 "音乐"并且其状态为"公开"。

对于以上两种方法, filter()在Django中排除() 使用相同的方式进行处理。 filter()中的所有条件。必须同时满足。对于连续的 filter() \对于多值关系,这些条件是平行的(均与主模型的对象相对应),而不是嵌套的(对应于先前的 filter()生成的对象\)。

您是否感到困惑,让我们举个例子。要查找博客,该博客必须包含符合以下条件的条目:条目的标题包含\。 " Lennon",并且发布日期为2008。也就是说,该条目必须同时满足这两个条件。我们这样写:

  博客对象过滤器 entry__headline__包含 = " Lennon" 

entry__pub_date__year = 2008

span>

要查找博客,此博客必须满足以下条件:包括带有字样的条目。 "列侬" \\ n在标题中,并包含发布日期为2008年的条目。但是,同一条目不必同时满足这两个条件。我们这样写:

  博客对象过滤器 entry__headline__包含 = " Lennon" 过滤器

entry__pub_date__year = 2008

span>

在第二个示例中,第一个过滤器定义具有特定条件的博客,第二个过滤器进一步\定义也满足第二个条件的博客。与第二个过滤器匹配的条目不一定与第一个过滤器匹配。这两个过滤器的条件特定于博客,而不特定于条目。

上面的方法也用于 exclude()

相关推荐

 
QQ在线咨询
售前咨询热线
QQ1922638