问题:如何使用Django删除表中的所有数据
我有两个问题:
- 如何在Django中删除表格?
- 如何删除表格中的所有数据?
这是我的代码,不成功:
Reporter.objects.delete()
回答 0
经理内部:
def delete_everything(self):
Reporter.objects.all().delete()
def drop_table(self):
cursor = connection.cursor()
table_name = self.model._meta.db_table
sql = "DROP TABLE %s;" % (table_name, )
cursor.execute(sql)
回答 1
根据最新文档,正确的调用方法是:
Reporter.objects.all().delete()
回答 2
如果要从所有表中删除所有数据,则可能需要尝试使用命令python manage.py flush
。这将删除表中的所有数据,但表本身仍将存在。
在此处查看更多信息:https : //docs.djangoproject.com/en/1.8/ref/django-admin/
回答 3
使用外壳,
1)删除表:
python manage.py dbshell
>> DROP TABLE {app_name}_{model_name}
2)要从表中删除所有数据:
python manage.py shell
>> from {app_name}.models import {model_name}
>> {model_name}.objects.all().delete()
回答 4
Django 1.11从数据库表中删除所有对象-
Entry.objects.all().delete() ## Entry being Model Name.
请参考以下引用的Django官方文档-https: //docs.djangoproject.com/en/1.11/topics/db/queries/#deleting-objects
请注意,delete()是唯一未在Manager本身上公开的QuerySet方法。这是一种安全机制,可防止您意外地请求Entry.objects.delete()并删除所有条目。如果确实要删除所有对象,则必须显式请求一个完整的查询集:
我自己尝试了以下代码片段, somefilename.py
# for deleting model objects
from django.db import connection
def del_model_4(self):
with connection.schema_editor() as schema_editor:
schema_editor.delete_model(model_4)
在我内部,我views.py
有一个视图,只显示一个html页面…
def data_del_4(request):
obj = calc_2() ##
obj.del_model_4()
return render(request, 'dc_dash/data_del_4.html') ##
它结束了从-model == model_4删除所有条目的操作,但是当我尝试确定model_4的所有对象都已删除时,我现在看到管理控制台中的错误屏幕…
ProgrammingError at /admin/dc_dash/model_4/
relation "dc_dash_model_4" does not exist
LINE 1: SELECT COUNT(*) AS "__count" FROM "dc_dash_model_4"
请考虑一下-如果我们不转到ADMIN控制台并尝试查看模型的对象-已经被删除-Django应用程序将按预期工作。
回答 5
有两种方法:
要直接删除它:
SomeModel.objects.filter(id=id).delete()
要从实例中删除它:
instance1 = SomeModel.objects.get(id=id)
instance1.delete()
//不要使用相同的名称
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。