django 模型:objects.all().delete() 没有

2023-12-20

我正在尝试清除并重新加载 django 模型中的表,并且

>>> models.PuzzleSum.objects.all().count()
2644
>>> models.PuzzleSum.objects.all().delete()
>>> models.PuzzleSum.objects.all().count()
2535

...什么鬼?总是神奇的数字 109。我知道我可以进入数据库并手动删除它们(或循环直到它们全部消失),但我很好奇。

(顺便说一句,Mac OS X Lion 上的 Django 1.3.1)


是的,Django将所有对象存储在一个字典中,然后将它们一一删除。这就是为什么只有唯一的项目被删除的原因,因为它会迭代它们。这是来自 Django集电极 https://github.com/django/django/blob/master/django/db/models/deletion.py类,收集要删除的模型:

self.data = SortedDict([(model, self.data[model])
                        for model in sorted_models])

进而:

# delete instances
for model, instances in self.data.iteritems():
    query = sql.DeleteQuery(model)
    pk_list = [obj.pk for obj in instances]
    query.delete_batch(pk_list, self.using)

只要你已经覆盖了__hash__的模型,当模型存储在 self.data 字典中时,仅存储唯一的模型,然后将其删除。

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

django 模型:objects.all().delete() 没有 的相关文章

  • 如何在 Django Rest Framework 中将当前用户设置为用户字段?

    我有以下代码完美运行 我可以创建一个Post通过选择图像和用户从 DRF 面板中获取对象 但是我希望 DRF 由当前登录的用户填充用户字段 模型 py class Post TimeStamped user models ForeignKe
  • 使用单选按钮渲染 ChoiceField

    我从模型构建了这个表格 class Configure template forms Form subject type forms ChoiceField choices Subject type objects all 我想使用单选按钮
  • Django admin:通过 URL 传递变量

    我想通过 URL 将变量传递到 django admin 中的另一个页面 看起来它不起作用 我想传递变量 name hello 并通过request GET get name 捕获它 但是url变成 e 1 经过之后 如果我使用默认参数 q
  • 以敏捷/BDD 方式在 Django 中使用 Doctests 的示例

    我有兴趣学习如何以更敏捷 BDD 的方式进行文档测试和单元测试 我发现了一些看似合理的教程 但它们只是缩略图 我真正想看到的是一些采用 BDD 风格开发的 Django 项目的源代码 我不清楚的是如何处理请求对象等 我遇到过这样的情况 我已
  • 使用 pip3 安装 mysqlclient 时遇到问题

    我正在尝试使用 Django 设置 python 3 6 环境 安装说明说我应该安装 mysqlclient 才能连接到 mySQL 我明白了 dennis django sudo H pip3 install mysqlclient Co
  • django 根据 UserProfile.language() 字段数据发送本地化电子邮件

    在我的优惠网站中 如果优惠满足某些要求 模型中指定的过滤器 用户可以设置电子邮件警报 因此 当用户 A 添加报价时 post save 信号将发送到 celery 并检查是否应用了用户警报过滤器 如果有 则发送电子邮件 问题是我不知道如何安
  • Django“模型”对象不可迭代

    我有一张表 其中显示了已注册的员工 我想根据他们的数据库生成一个简单的 HTML 页面 其中包括他们的姓名 id 职称等 为此 我将一个 id 传递给视图 以便它可以获取相应用户的详细信息并向我显示 一切正常 直到出现错误对象不可迭代 下面
  • Django Rest Framework 序列化器中的聚合(和其他带注释的)字段

    我正在尝试找出添加带注释字段的最佳方法 例如将任何聚合 计算 字段添加到 DRF 模型 序列化器 我的用例只是一种情况 端点返回的字段未存储在数据库中 而是从数据库计算得出 让我们看下面的例子 模型 py class IceCreamCom
  • django ajax post 403被禁止

    使用 django 1 4 当我尝试从我的 javascript 做我的 django 服务器上的帖子时 我收到 403 错误 我的 get 工作正常 尽管问题仅出在帖子上 也尝试过 csrf exempt但没有运气 更新 我现在可以发布我
  • 如何继承并重写 django 模型类来创建 listOfStringsField?

    我想为 django 模型创建一个新类型的字段 它基本上是一个 ListOfStrings 因此 在您的模型代码中 您将具有以下内容 模型 py from django db import models class ListOfString
  • 在 django vanilla CreateView 上设置当前用户

    我想用当前登录的用户更新我的模型 我正在使用 django vanilla views 为了存储新记录 我尝试使用 CreateView 我不想在表单上显示用户 只需自动更新即可 这是我的模型 class Measurement model
  • 如何获取Django当前的语言?

    如何获取 Django 中的当前语言 特别感兴趣的功能是django utils translation get language 它返回当前线程中使用的语言 看文档 https docs djangoproject com en dev
  • Django 评论和评级系统

    我正在寻找一个可以与我的 Django 网站顺利集成的博客和评论系统 我在网上发现了很多 但有点迷失了 我在这方面没有太多经验 希望大家能给我一些建议 以下是我想要拥有的东西 标签云 文章存档 按月 按年 文章评级 例如带有星星或自定义图标
  • 在 django 查询集上使用 iterator()

    我最近遇到了一些奇怪的行为 需要检查我的理解 我在模型中使用一个简单的过滤器 然后迭代结果 e g allbooks Book objects filter author A A Milne for book in allbooks do
  • iFrame 在 Facebook Canvas 应用程序中显示为空白

    我有一个非常简单的页面 我试图在 Facebook iframe 中查看它 它是一个 Django 视图 但它不依赖于请求是通过 POST 还是 GET 提交 它所做的只是返回一些简单的 HTML 如果我们直接点击链接 它会正确显示 如果在
  • 在 Django 中定义视图和 url。为什么调用函数时不使用括号?

    我已经在经历 Python速成课程 目前正在进行 Django Web应用程序项目 学习日志 阶段 有些东西与我已经学到的相矛盾 views py file from django shortcuts import render def i
  • 使用 python 制作本地服务器应用程序的最佳方法

    我想要简单轻松地集成 python 和 vba 人们 如果他们在阅读本文后亲自见到我 阅读本文可能会杀了我 但我正在使用 django 开发服务器来实现此目的 有没有什么简单又好的方法 仅举个例子 我想使用 python 模块 openpy
  • Django modelForm 中的文件上传

    我正在尝试在 appengine django 中上传文档 使用纯 django 代码成功上传文档 使用 python manage py runsever 但是当我尝试使用 appengine 项目运行 django 时 它给了我错误 E
  • django 模板上的 vscode html 自动套用格式

    我喜欢 VSCode 的保存自动格式功能 直到它弄乱了我的模板代码 它错误地将我的 django 模板语法格式化为一行代码 有时非常长的一行 所以不用这段代码 for row in ABCDEFGH tr for col in 123456
  • Django-celery/RabbitMQ 在哪里存储任务结果?

    我的 celery 数据库后端设置是 CELERY RESULT BACKEND database CELERY RESULT DBURI mysqlite db 我使用 RabbitMQ 作为我的消息发送器 似乎没有任何结果存储在数据库中

随机推荐