高效删除 Django 中孤立的 m2m 对象/标签

2023-11-22

我有两个模型 - 照片和标签 - 通过 ManyToManyField 连接。

class Photo(models.Model):
    tags = models.ManyToManyField(Tag)

class Tag(models.Model):
    lang = models.CharField(max_length=2)
    name_es = models.CharField(max_length=40)
    name_en = models.CharField(max_length=40)

每隔一段时间,我们就会得到孤立的标签,这些标签不再被任何照片引用。有没有有效的方法来删除这些标签?我知道这个答案:Django:删除 M2M 孤立条目?

目前我们的解决方案如下所示:

for tag in Tag.objects.all():
    if not tag.photo_set.select_related(): tag.delete()

然而,随着数据库的增加,这个脚本的运行时间变得令人痛苦地高:-P 有没有一种有效的方法从标签表中获取所有标签 ID 的列表,然后从多对多中获取所有标签 ID 的列表表创建交集列表?


尝试使用/中间表进行子查询

qs = Tag.objects.exclude(pk__in=Book.tags.through.objects.values('tag'))

# then you could
qs.delete()

# or if you need to trigger signal per item
for x in qs:
    x.delete()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

高效删除 Django 中孤立的 m2m 对象/标签 的相关文章

  • Django - 一个视图中的多个模型(表)

    操作系统 Windows10 Python 3 7 4 姜戈 2 1 我想展示这个模型 像这样在此输入图像描述 https i stack imgur com 2UERg jpg 但我不知道 我怎样才能做到这一点 我尝试了三个月来解决这个问
  • Django 视图中的原始 SQL 查询

    我将如何使用原始 SQL 执行以下操作views py from app models import Picture def results request all Picture objects all yes Picture objec
  • 没有数据库的 django 单元测试

    是否有可能在不设置数据库的情况下编写 django 单元测试 我想测试不需要数据库设置的业务逻辑 虽然设置数据库很快 但在某些情况下我真的不需要它 您可以子类化 DjangoTestSuiteRunner 并重写 setup databas
  • 导入错误:没有名为 app_name 的模块

    我是 python 新手 我在 SO 上看到过类似的问题 但无法弄清楚我的 Django 应用程序出了什么问题 在 settings py 中 我以点线模块形式添加了我的应用程序 INSTALLED APPS django contrib
  • Python/Django:我应该使用哪个authorize.net 库?

    我需要使用 Authorize net 集成来进行订阅付款 可能使用 CIM 要求很简单 每月定期付款 有几个不同的价格点 客户信用卡信息将存储在authorize net 中 周围有很多库和代码片段 我正在寻找关于哪些最有效的建议 Sat
  • Vagrant + Chef:配置错误“虚拟机上缺少 Chef 所需的共享文件夹。”

    我已经使用 Chef library Chef 安装了 Vagrant Virtualbox 当我做vagrant up第一次 食谱被正确加载 但是 当我事后进行配置时 无论是vagrant provision vagrant reload
  • 如何将当前登录的用户指定为模型字段的默认值?

    我想做这样的事情 class Task models Model created by models ForeignKey User default LoggedInUser blank True null True related nam
  • 在生产设置中使用 django 时引发 KeyError(key) KeyError: 'SECRET_KEY'

    我有 2 个用于生产和开发的单独设置文件以及一个通用的 base py 设置文件 base py SECRET KEY r 123456 prod py from base import SECRET KEY os environ SECR
  • 安装 python 包时出错

    我无法从两者安装 python 包pip and easy install 一些荒谬的错误不断出现 请帮助纠正它 我在使用时遇到同样的错误python setup py install 安装时出错Django memcached C Use
  • Django 的 ClearableFileInput 小部件在提交时不会传递初始(“当前”)值

    我的基本目标是创建一个表单 使用ModelForm 预先填充现有数据库对象中的数据 允许用户修改这些数据 然后将提交的表单保存为new目的 类似于 复制 然后 修改后粘贴 设置 除了文件字段和 ClearableFileInput 小部件之
  • 同一域上的多个 Django 站点 - CSRF 失败

    我有两个应用程序在同一域的不同端口上运行 都使用 csrf 中间件 当我登录其中一个应用程序时POST从另一个提交失败 我推测是因为SESSION COOKIE DOMAIN是一样的 我尝试改变SESSION COOKIE NAME 但是
  • 修改不同Django用户的会话数据

    这可能不可能 但是当某些情况发生时 我想修改某些登录用户的会话数据 标记一些额外的逻辑需要在下次加载页面时运行 有没有办法通过用户 ID 访问用户的会话 tldr Query Session模型 然后通过修改匹配会话SessionStore
  • 使用自定义表单的 Django 内联表单集

    我正在使用内联表单集 我的型号 class Author models Model description models CharField max length 100 class Book models Model author mod
  • Django 视图集没有属性“get_extra_actions”

    我第一次使用 Django 我正在尝试构建一个 API 我正在遵循一些教程和示例 它工作正常 但在安装所有要求和项目后 我现在正在 Raspberry Pi 中运行该项目失败并出现以下错误 Performing system checks
  • 在 Django(Python) 中向用户提供 Excel(xlsx) 文件下载

    我正在尝试使用 Django 创建和提供 Excel 文件 我有一个 jar 文件 它获取参数并根据参数生成 excel 文件 并且它可以正常工作 但是 当我尝试获取生成的文件并将其提供给用户下载时 文件损坏了 它的大小为 0kb 这是我用
  • JPA ManyToMany 产生的空联接表

    我有一个应用程序 其中我尝试使用 Hibernate 作为 JPA 提供程序来实现两个实体之间的多对多关系 我正在尝试的例子是一个单向的 其中一个相机可以有多个镜头 而镜头可以安装到多个相机中 以下是我的实体类 只需粘贴其中的相关部分 Ca
  • Python用Django请求Post请求数据

    我正在尝试向一个非常简单的 django 服务器发送一个简单的 post 请求 但无法理解为什么 post 数据没有出现在 requests post 字典中 而是出现在请求正文中 客户端代码 payload test test heade
  • Django:使用 Django ORM 实现 JOIN?

    我有一个用 Django 构建的问答类型的网站 具有以下模型 class Question models Model title models CharField max length 70 details models TextField
  • 如何删除django中级联的一对一相关模型?

    背景 我在 Django 1 8 5 中定义了以下模型 class PublishInfo models Model pass class Book models Model info models OneToOneField Publis
  • 可以用 Django 制作移动应用程序吗?

    我想知道我是否可以在我的网站上使用 Django 代码 并以某种方式在移动应用程序 Flutter 等框架中使用它 那么是否可以使用我现在拥有的 Django 后端并在移动应用程序中使用它 所以就像models views etc 是的 有

随机推荐

  • 以编程方式生成 VSTS 的个人访问令牌

    我是否可以连接到 VSTS REST 端点 以便让用户自行提供另一个 PAT 最好是在当前到期前几天 我有一个时间表应用程序 现在正在连接到 VSTS 以获取工作项信息并更新所述工作项 但是 在某个时候 90 天 180 天或一年后 PAT
  • “git fetch”后 FETCH_HEAD 引用未正确更新

    我有一个从远程存储库中提取的本地存储库 跑步git pull也git fetch git merge FETCH HEAD用于执行完全相同的操作 正如预期的那样的描述git pull 描述 将远程存储库中的更改合并到当前分支中 在默认模式下
  • 如何从父文件夹或同级文件夹模块访问模块?

    我正在尝试从以下位置访问模块parser rs and another rs in the solve rs 如何包含这些模块并使用 use语句 如果不可能 代码结构应该是什么 这是应用程序文件夹树 app src main rs anot
  • 可空类型之间的转换

    NET 4 0 中是否有一个转换器支持可空类型之间的转换以缩短指令 例如 bool nullableBool GetSomething byte nbyte nullableBool HasValue byte Convert ToByte
  • 为什么我会收到 Can't make a table of more 2^31 elements in R 的错误

    你好我有一个数据框record在8维的R中 有60个变量 缺失值用NA替换 其他值是单词 当我尝试像这样对数据框进行制表时feeds lt table record 我收到一条错误消息 Error in table record attem
  • 如何在多核8节点集群中调度Hadoop Map任务?

    我有一个 仅映射 无缩减阶段 程序 输入文件的大小足以创建 7 个映射任务 我已经通过查看生成的输出 part 000 到 part006 验证了这一点 现在 我的集群有 8 个节点 每个节点有 8 个核心和 8 GB 内存 并在头节点托管
  • 预留实例模式下适用于 Azure 网站的新 Azure 分布式缓存

    Windows Azure 的其他出色新功能 6 月 7 日发布 中似乎缺少的一项功能是在预留实例模式下为网站集群的预留实例定义分布式缓存的能力 截至目前 似乎只能为独立的 Web 角色或辅助角色创建分布式缓存 有谁知道解决方法或知道这是否
  • Java 原语放在栈上还是堆上?

    我只知道非基元 对象 位于堆上 方法位于堆栈上 但是基元变量呢 update 根据答案 我可以说堆可以为给定的对象拥有新的堆栈和堆 鉴于该对象将具有原始变量和引用变量 本地定义的原语将位于堆栈上 但是 如果将原语定义为对象实例的一部分 则该
  • Struts2 从 JSP 访问枚举

    我有以下课程 package com test public class SomeClass public enum COLOR RED BLUE 我想访问的值COLOR我的 JSP 中的枚举 我已经尝试过以下代码 但它不起作用
  • Rspec 模拟:ActiveRecord::AssociationTypeMismatch

    我是 Rspec 新手 正在尝试为用户配置文件设置测试 个人资料属于用户 现在 我与通过用户模型工作的第三方网站进行了 API 集成 但该 API 链接的一些信息包含在配置文件中 因此我在配置文件上有一个 after update 过滤器
  • 两张表具有相同的列,还是一张表具有附加列?

    假设我有两个表 苹果和橙子 它们具有相同的列 只是表名不同 将其变成一个带有附加列 类型 的表 假设它称为 水果 然后存储 苹果 或 橙色 的值 是否有任何优点 缺点 编辑以澄清 创建表苹果 id 整数 权重整数 各种 varchar 25
  • Tomcat 无法找到我的 Servlet 并抛出异常,但为什么呢?

    我正在尝试进入 Java Web 开发 但似乎在 Tomcat 和一个极其简单的 servlet 方面遇到了一个奇怪的问题 每次我尝试加载应用程序时 catalina 日志都会喷出以下内容 Caused by java lang Illeg
  • 计算渐变颜色的最快方法?

    我正在制作一小部分与渐变相关的类型 函数以供将来使用 我想确保至少有两个过程 ColorBetween 和 ColorsBetween 我可能只想获取任意 2 种颜色 ColorsBetween 之间的 TColor 数组 并且我可能只需要
  • AWS SNS 是否将 apns-push-type 和 apns-priority 添加到其 iOS 推送通知标头中?

    根据Apple 的 APN 文档 从 http api 的 iOS 13 客户端开始must发送标头字段apns push type and apns priority否则请求将失败 果然 更新到 iOS 13 Beta 版的用户并没有收到
  • django staticfiles 是否跳过中间件?

    我正在运行 django 1 4 1 应用程序 我没有意识到只是包括django contrib staticfiles into INSTALLED APPS在您的设置中足以获得静态文件settings DEBUG是 True 即您不必手
  • 我的 Ubuntu 系统上有 Python,但 gcc 找不到 Python.h [重复]

    这个问题在这里已经有答案了 我在学校计算机上 所以无法安装任何东西 我正在尝试创建可以在 Python 中运行的 C 代码 看来我找到的所有文章都需要你使用 include
  • 何时使用 RSpec let()?

    我倾向于使用 before 块来设置实例变量 然后我在我的示例中使用这些变量 我最近遇到了let 根据 RSpec 文档 它用于 定义一个记忆辅助方法 该值将在同一示例中的多个调用之间进行缓存 但不会跨示例进行缓存 这与在 before 块
  • this.offset 不是点击函数中的函数

    错误在于 this offset不是一个函数 我将其记录到控制台 它是 li 我点击了元素 所以我很困惑为什么这不起作用 item click function e var this this var topx this offset to
  • 在android中反序列化JSON字符串

    我有如下所示的 JSON 字符串 Status Clear Class br name personA available 1 br name personB available 0 br name personC available 0
  • 高效删除 Django 中孤立的 m2m 对象/标签

    我有两个模型 照片和标签 通过 ManyToManyField 连接 class Photo models Model tags models ManyToManyField Tag class Tag models Model lang