Saya punya dua pertanyaan:
- Bagaimana cara menghapus tabel di Django?
- Bagaimana cara menghapus semua data di tabel?
Ini kode saya, yang tidak berhasil:
Reporter.objects.delete()
python
django
django-queryset
zjm1126
sumber
sumber
Jawaban:
Di dalam seorang manajer:
sumber
'DELETE FROM %s' % (table_name, )
sedikit itu, membiarkan tabel kosong tapi utuh.Sesuai dokumentasi terbaru , metode yang benar untuk memanggil adalah:
sumber
delete
dipanggil, sedangkan dengandelete
panggilanQuerySet
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/
sumber
Menggunakan shell,
1) Untuk Menghapus tabel:
2) Untuk menghapus semua data dari tabel:
sumber
Django 1.11 hapus semua obyek dari tabel database -
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
dan di dalam saya,
views.py
saya memiliki tampilan yang hanya menampilkan halaman 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 ...
Pertimbangkan bahwa - jika kita tidak pergi ke Konsol ADMIN dan mencoba dan melihat objek model - yang telah dihapus - aplikasi Django bekerja seperti yang diinginkan.
django admin screencapture
sumber
Ada beberapa cara:
Untuk menghapusnya secara langsung:
Untuk menghapusnya dari sebuah instance:
// jangan gunakan nama yang sama
sumber