回答:
マネージャーの内部:
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)
'DELETE FROM %s' % (table_name, )
し、テーブルを空のままにしますが、そのままにします。
すべてのテーブルからすべてのデータを削除する場合は、コマンドを試してくださいpython manage.py flush
。これにより、テーブル内のすべてのデータが削除されますが、テーブル自体は引き続き存在します。
詳細はこちら:https : //docs.djangoproject.com/en/1.8/ref/django-admin/
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 Consoleに移動せずに、モデルのオブジェクトを確認してみてください-すでに削除されています-Djangoアプリは意図したとおりに機能します。