Jawaban:
Di dalam seorang manajer:
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, )
sedikit itu, membiarkan tabel kosong tapi utuh.
Sesuai dokumentasi terbaru , metode yang benar untuk memanggil adalah:
Reporter.objects.all().delete()
delete
dipanggil, sedangkan dengan delete
panggilan QuerySet
itu tidak.
Jika Anda ingin menghapus semua data dari semua tabel Anda, Anda mungkin ingin mencoba perintah python manage.py flush
. Ini akan menghapus semua data di tabel Anda, tetapi tabel itu sendiri akan tetap ada.
Lihat selengkapnya di sini: https://docs.djangoproject.com/en/1.8/ref/django-admin/
Django 1.11 hapus semua obyek dari tabel database -
Entry.objects.all().delete() ## Entry being Model Name.
Lihat dokumentasi Resmi Django di sini seperti dikutip di bawah - https://docs.djangoproject.com/en/1.11/topics/db/queries/#deleting-objects
Perhatikan bahwa delete () adalah satu-satunya metode QuerySet yang tidak diekspos di Manajer itu sendiri. Ini adalah mekanisme keamanan untuk mencegah Anda secara tidak sengaja meminta Entry.objects.delete (), dan menghapus semua entri. Jika Anda ingin menghapus semua objek, maka Anda harus secara eksplisit meminta satu set kueri lengkap:
Saya sendiri mencoba potongan kode yang terlihat di bawah ini dalam file 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)
dan di dalam saya, views.py
saya memiliki tampilan yang hanya menampilkan halaman html ...
def data_del_4(request):
obj = calc_2() ##
obj.del_model_4()
return render(request, 'dc_dash/data_del_4.html') ##
itu berakhir menghapus semua entri dari - model == model_4, tetapi sekarang saya bisa melihat layar Kesalahan dalam konsol Admin ketika saya mencoba untuk memastikan bahwa semua objek model_4 telah dihapus ...
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"
Pertimbangkan bahwa - jika kita tidak pergi ke Konsol ADMIN dan mencoba dan melihat objek model - yang telah dihapus - aplikasi Django bekerja seperti yang diinginkan.
Ada beberapa cara:
Untuk menghapusnya secara langsung:
SomeModel.objects.filter(id=id).delete()
Untuk menghapusnya dari sebuah instance:
instance1 = SomeModel.objects.get(id=id)
instance1.delete()
// jangan gunakan nama yang sama