Skip to main content
 首页 » 编程设计

python之如何删除 Django 中的表数据

2024年10月24日33xiaohuochai

我写了一个简单的脚本来填充用 Django 模型创建的表。我在开发过程中确实犯了错误,并且在我的表中损坏了数据(它可以访问但有错误的图像、名称、url)。我想删除这些数据并重新开始填充,但如果我只使用 Model .objects.all().delete()。

如何在没有DROP TABLE的情况下删除所有以前的数据?如果 DROP 是最方便的方法,那么这是 Django : Table doesn't exist 吗?恢复的解决方案是唯一的吗?

所需的功能是在每个脚本运行之前自动删除数据。提前谢谢你。

请您参考如下方法:

你可以只使用flush

Removes all data from the database and re-executes any post-synchronization handlers. The table of which migrations have been applied is not cleared.

通过 manage.py flush 调用

Are there any ways to use flush just for the set of tables, not database?

不,不是真的。 Flush 有一个选项可以指定要刷新的数据库(-database),但您不能指定某些表,因为这可能会破坏表之间的关系,从而使数据无效。

如果您确实需要执行此操作,您当然可以创建自己的命令来遍历表并删除对象,但这当然不会执行 post-synchronization 步骤那个冲洗确实