如何进行多对多 Django 查询来查找具有 2 个给定作者的书籍?

2024-03-07

我有一个查询,需要使用 ID 精确过滤 2 位作者

理论上,

Book.objects.filter(author__id=1, author__id=2). 

这是不可能的。

我怎么解决这个问题?

干杯, 米奇


一开始并不直观,但答案就在我们面前。

Book.objects.filter(author__id=1).filter(author__id=2)

如果您想要完全匹配,您可以通过那些只有 2 位作者的项目进一步过滤此结果。

Book.objects.annotate(count=Count('author')).filter(author__id=1)\
                .filter(author__id=13).filter(count=2)

如果你想要动态精确匹配,像这样怎么样?:

def get_exact_match(model_class, m2m_field, ids):
    query = model_class.objects.annotate(count=Count(m2m_field))\
                .filter(count=len(ids))
    for _id in ids:
        query = query.filter(**{m2m_field: _id})
    return query

matches = get_exact_match(MyModel, 'my_m2m_field', [1, 2, 3, 4])

# matches is still an unevaluated queryset, so you could run more filters
# without hitting the database.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何进行多对多 Django 查询来查找具有 2 个给定作者的书籍? 的相关文章

  • 使 django 服务器可以在 LAN 中访问

    我已经安装了Django服务器 可以如下访问 http localhost 8000 get sms http 127 0 0 1 8000 get sms 假设我的IP是x x x x 当我这样做时 从同一网络下的另一台电脑 my ip
  • 如何在flask中使用g.user全局

    据我了解 Flask 中的 g 变量 它应该为我提供一个全局位置来存储数据 例如登录后保存当前用户 它是否正确 我希望我的导航在登录后在整个网站上显示我的用户名 我的观点包含 from Flask import g among other
  • 通过最小元素比较对 5 个元素进行排序

    我必须在 python 中使用元素之间的最小比较次数来建模对 5 个元素的列表进行排序的执行计划 除此之外 复杂性是无关紧要的 结果是一个对的列表 表示在另一时间对列表进行排序所需的比较 我知道有一种算法可以通过 7 次比较 总是在元素之间
  • Python - StatsModels、OLS 置信区间

    在 Statsmodels 中 我可以使用以下方法拟合我的模型 import statsmodels api as sm X np array 22000 13400 47600 7400 12000 32000 28000 31000 6
  • 如何从网页中嵌入的 Tableau 图表中抓取工具提示值

    我试图弄清楚是否有一种方法以及如何使用 python 从网页中的 Tableau 嵌入图形中抓取工具提示值 以下是当用户将鼠标悬停在条形上时带有工具提示的图表示例 我从要从中抓取的原始网页中获取了此网址 https covid19 colo
  • Spark KMeans 无法处理大数据吗?

    KMeans 有几个参数training http spark apache org docs latest api python pyspark mllib html highlight kmeans pyspark mllib clus
  • Python pickle:腌制对象不等于源对象

    我认为这是预期的行为 但想检查一下 也许找出原因 因为我所做的研究结果是空白 我有一个函数可以提取数据 创建自定义类的新实例 然后将其附加到列表中 该类仅包含变量 然后 我使用协议 2 作为二进制文件将该列表腌制到文件中 稍后我重新运行脚本
  • 如何在Python中获取葡萄牙语字符?

    我正在研究葡萄牙语 角色看起来很奇怪 我怎样才能解决这个问题 代码 import feedparser import random Vou definir os feeds feeds conf feedurl http pplware s
  • 如何让 Django 和 ReactJS 协同工作?

    New to Django and even newer to ReactJS I have been looking into AngularJS and ReactJS but decided on ReactJS It seemed
  • 使用具有外键的模型序列化器在 Django Rest Framework 中的父表上执行 CRUD

    在我的 API 中 我有两个模型Question and Option如下所示 class Question models Model body models TextField class Options models Model que
  • django 如何循环遍历通用详细视图传回的上下文对象?

    我正在使用通用 DetailView 来显示项目对象 我可以在模板中以某种方式循环遍历这些字段吗 还是必须放置每个字段 url r P
  • 如何使用Python创建历史时间线

    So I ve seen a few answers on here that helped a bit but my dataset is larger than the ones that have been answered prev
  • IO 密集型任务中的 Python 多线程

    建议仅在 IO 密集型任务中使用 Python 多线程 因为 Python 有一个全局解释器锁 GIL 只允许一个线程持有 Python 解释器的控制权 然而 多线程对于 IO 密集型操作有意义吗 https stackoverflow c
  • python获取上传/下载速度

    我想在我的计算机上监控上传和下载速度 一个名为 conky 的程序已经在 conky conf 中执行了以下操作 Connection quality alignr wireless link qual perc wlan0 downspe
  • Fabric env.roledefs 未按预期运行

    On the 面料网站 http docs fabfile org en 1 10 usage execution html 给出这个例子 from fabric api import env env roledefs web hosts
  • 向 Altair 图表添加背景实心填充

    I like Altair a lot for making graphs in Python As a tribute I wanted to regenerate the Economist graph s in Mistakes we
  • 如何在seaborn displot中使用hist_kws

    我想在同一图中用不同的颜色绘制直方图和 kde 线 我想为直方图设置绿色 为 kde 线设置蓝色 我设法弄清楚使用 line kws 来更改 kde 线条颜色 但 hist kws 不适用于显示 我尝试过使用 histplot 但我无法为
  • 对年龄列进行分组/分类

    我有一个数据框说df有一个柱子 Ages gt gt gt df Age 0 22 1 38 2 26 3 35 4 35 5 1 6 54 我想对这个年龄段进行分组并创建一个像这样的新专栏 If age gt 0 age lt 2 the
  • 如何在 Python 中追加到 JSON 文件?

    我有一个 JSON 文件 其中包含 67790 1 kwh 319 4 现在我创建一个字典a dict我需要将其附加到 JSON 文件中 我尝试了这段代码 with open DATA FILENAME a as f json obj js
  • 解释 Python 中的数字范围

    在 Pylons Web 应用程序中 我需要获取一个字符串 例如 关于如何做到这一点有什么建议吗 我是 Python 新手 我还没有找到任何可以帮助解决此类问题的东西 该列表将是 1 2 3 45 46 48 49 50 51 77 使用

随机推荐

  • 使用 sbt 将工件发布到 AWS CodeArtifact

    我正在尝试将工件发布到AWS CodeArtifact using sbt 但我遇到了一些麻烦 给定一个sbt项目 运行命令sbt publish包已上传到存储库 但仍保留在Unfinished状态 AWS CodeArtifact文档 h
  • 在远程机器上递归执行本地定义的python脚本

    我有兴趣编写一个脚本 以便该脚本的唯一副本驻留在我的本地计算机上 但该脚本在远程计算机上执行 可能远程计算机在其他远程计算机上执行该脚本 即 2 个或更多级别的分布式调用树中的递归 实现这一目标的一种方法是一步将脚本复制到远程计算机 然后在
  • ES6:“从'jquery'导入$”真正意味着什么?

    我一开始以为它只是意味着加载 jQuery 模块并在名为 的变量中初始化它 但是 通过将 Atom 与 A tom TypeScript 一起使用 我收到一条错误消息 指出 找不到模块 jquery 尽管所有代码都可以在浏览器中运行 但看起
  • Android - android.os.NetworkOnMainThreadException

    我有这个例外 我正在阅读关于此的线程 它似乎令人困惑 如何修复 android os NetworkOnMainThreadException https stackoverflow com questions 6343166 androi
  • 从 Javascript 对象创建 HTML 标签

    更改此对象的最佳方法是什么 src img jpg title foo 转化为有效的HTML 标签字符串像这样 img src img jpg title foo 解决方案1 使用 jQuery 这很容易 但很复杂 img attr obj
  • DefaultValue 属性反序列化

    我正在尝试将流反序列化为具有默认值属性的对象 并且当流中缺少这些属性时 protobuf net 只是忽略这些属性 在反序列化之前 我是否需要手动将所有属性设置为默认值 The DefaultValues行为 不仅仅是在 protobuf
  • StreamContent 和 ByteArrayContent webApi 的差异

    我在整个网络上进行了搜索 但找不到答案 我们的应用程序中有两种方法 a 第一个返回HttpResponseMessage里面有 1 个文件 它用StreamContent response Content new StreamContent
  • Javascript 中箭头函数(粗箭头=>)的确切解析优先级是什么?

    我遇到了一个例子eslint 文档 https eslint org docs rules no confusing arrow关于箭头函数 The intent is not clear var x a gt 1 2 3 所以我对箭头函数
  • 禁用 pylon 中的浏览器缓存

    我有一个操作 json 从服务器返回 json 不幸的是 在 IE 中 浏览器喜欢缓存这个 json 我怎样才能使该操作不缓存 确保您的响应标头具有 Cache Control no cache Pragma no cache Expire
  • 如何在 MySQL 中向值附加回车符?

    我正在导入一些餐厅信息 但发现我缺少描述字段中的菜肴类型 如何在值后面附加回车符 这就是我到目前为止所拥有的 我希望菜肴能换上新的路线 select concat field id 20 r french from table 如果您想要一
  • 使用 POI jar 获取 Excel SheetNames

    我需要使用 POI jar 的所有 Excel 工作表名称 所有包含数据的内容 像 jxl jar getSheetNames 你没有说你想要什么 所以我会猜测一个清单 您只需要迭代工作表索引 获取每个索引的名称 你的代码会是这样的 Fil
  • Selenium IDE 和 xpath - 在表中查找文本/行并选择单选框

    我一直在使用 Selenium IDE 并取得了一些不错的结果 我已经阅读了很多有关跟随兄弟姐妹和先前兄弟姐妹的内容 但我找不到正确的单选按钮 本质上 我想在表中找到带有 测试 一词的行 然后单击单元格中的单选按钮 到目前为止我可以找到输入
  • 如何将逗号分隔的字符串转换为列表?

    Java 中是否有任何内置方法允许我们将逗号分隔的字符串转换为某个容器 例如数组 列表或向量 或者我需要为此编写自定义代码吗 String commaSeparated item1 item2 item3 List
  • 希伯来语问题 - MySql,c#

    我在将希伯来语字符串插入 MySql 时遇到问题 介绍 我将MySql设置为Utf8 我将表设置为字符集 utf8 排序规则为 uft8 general ci 我将连接字符串设置为 Server 数据库 Uid Pwd 字符集 utf8 我
  • 打包一个可运行的 JPA jar,将 persistence.xml 放在外面

    我想将我的 jpa swing 项目导出到可运行的 jar 中 但我希望 persistence xml 位于 jar 之外而不是打包在里面 这样我就可以更改它 而无需在每次配置后再次导出 jar 根据 JPA 规范 persistence
  • ios - 多个导航控制器之间的导航

    我试图理解使用 和不使用 NavigationController 在 ViewController 之间导航的行为 并且在阅读文章和文档时我误解了一些事情 所以我决定问他们 主要问题是 如果故事板中有多个导航控制器并且想要从一个导航控制器
  • cython 做了哪些 numpy 优化?

    我有点惊讶地发现 fast ops c pyx cimport cython cimport numpy as np cython boundscheck False turn off bounds checking for entire
  • C++ 打印指针的值

    我有一个双指针数组 但每次我尝试打印其中一个值时 都会打印地址 如何打印实际值 cout 有人知道吗 如果它确实是一个 初始化的 双指针数组 即 double arr Initialize individual values 所有你需要的是
  • UIDatePicker设置最小和最大小时

    如何设置 UIDatePicker 的最小和最大小时 到底有可能吗 我知道如何设置最小和最大日期 datePicker setMinimumDate 今天 datePicker setMaximumDate nextMonthDay 我想要
  • 如何进行多对多 Django 查询来查找具有 2 个给定作者的书籍?

    我有一个查询 需要使用 ID 精确过滤 2 位作者 理论上 Book objects filter author id 1 author id 2 这是不可能的 我怎么解决这个问题 干杯 米奇 一开始并不直观 但答案就在我们面前 Book