【发布时间】:2012-07-30 18:53:30
【问题描述】:
我正在尝试清除并重新加载我的 django 模型中的表格,并且
>>> models.PuzzleSum.objects.all().count()
2644
>>> models.PuzzleSum.objects.all().delete()
>>> models.PuzzleSum.objects.all().count()
2535
... wtf?总是神奇的数字 109。我知道我可以进入数据库并手动删除它们(或循环直到它们全部消失)但我很好奇。
(顺便说一句,Mac OS X Lion 上的 Django 1.3.1)
【问题讨论】:
-
不知道,也许 PuzzleSum 的基本 QuerySet 设置为自定义管理器?例如docs.djangoproject.com/en/dev/topics/db/managers/…
-
好主意,但不行。这是一个从 django shell 运行的数据加载脚本,(尝试)删除是我在导入模型后做的第一件事。
-
您能添加 PuzzleSum 和任何相关模型的代码吗?
-
你的模型是如何进入模型的? models.PuzzleSum.objects.all()?您的模型应该是 django.db.models.Model 的“子类”?是吗?
-
知道了!是的,我的模型是 models.Model 的子类,但我已经覆盖了 hash 和 eq,因为我想使用“重复”的特定定义。猜猜看:我有 109 个不同的哈希值。 Django 必须在其删除逻辑的内部某处使用一组对象。
标签: django django-models