我有一个表名UGC,想要清除该表中的所有数据。我不想重置整个应用程序,这将删除所有其他模型中的所有数据。是否有可能只清除一个模型?如果有帮助的话,我也可以使用我的应用配置南方。
答案 0 :(得分:5)
你可以use raw SQL:
cursor.execute(“DROP TABLE UGC”)
或者您可以直接在Django shell中使用ORM:
UGCModel.objects.all().delete()
那会擦除数据(不过表格),所以你必须小心:)
另一种方式(为了完整性和使用南方)将在模型声明中注释掉模型,迁移然后再将其重新放回(假设没有模型引用它。)
HTH
答案 1 :(得分:2)
在管理界面中,您可以转到该模型的列表页面,然后您可以选择所有模型并使用表格顶部的Delete selected ...
操作。
请记住,无论以何种方式删除数据,外键默认为ON DELETE CASCADE
,因此任何具有要删除的模型的外键的模型也将被删除。管理界面将为您提供将要删除的模型的完整概述。
答案 2 :(得分:0)
今天用django 2.0.2面对这样的问题,因为我用
创建了我的模型class Front(models.Model):
pass
并迁移了它,但是当我后来更新模型时,我无法运行
python manage.py makemigrations
,因为它是在说
You are trying to add a non-nullable field 'update' to front without a default; we can't do that (the database needs something to populate existing rows).
Please select a fix:
1) Provide a one-off default now (will be set on all existing rows
with a null value for this column)
2) Quit, and let me add a default in models.py
Select an option:
我的解决方案是什么?
Front
python manage.py makemigrations
删除了麻烦的桌子/模型python manage.py makemigrations
,重新创建了表/模型,最后python manage.py migrate
迁移了我的更改,并且解决了所有问题! 注意:请注意上述说明,因为它会删除表格/型号的所有引用/外键on_delete=models.CASCADE
这是默认值!