Press ESC to close

Cara Menghapus Data di Django: Panduan Fungsi Delete dalam CRUD

Mengapa Fungsi Delete Itu Penting?

Fungsi Delete dalam sistem CRUD memungkinkan pengguna untuk menghapus data yang sudah tidak relevan atau diinginkan dari database. Fungsi ini sangat penting dalam menjaga kebersihan dan keakuratan data dalam aplikasi.

Apa yang Akan Dipelajari?

Pada artikel ini, kita akan mempelajari langkah-langkah berikut:

  1. Membuat Tampilan (View) untuk Fungsi Delete
  2. Mengatur URL untuk Fungsi Delete
  3. Membuat Konfirmasi Penghapusan dengan Template HTML
  4. Menguji Fungsi Delete di Browser

Mari kita mulai!

Langkah 1: Membuat Tampilan (View) untuk Fungsi Delete

Untuk menghapus data, kita akan membuat tampilan yang menampilkan halaman konfirmasi. Jika pengguna setuju, data akan dihapus dari database.

  1. Buka File views.py di Aplikasi CRUD:
    Di dalam aplikasi CRUD, buka file views.py.
  2. Buat Fungsi untuk Menghapus Data:
    Tambahkan fungsi delete_artikel di views.py untuk menangani proses penghapusan data.
   from django.shortcuts import render, redirect, get_object_or_404
   from .models import Artikel

   def delete_artikel(request, id):
       artikel = get_object_or_404(Artikel, id=id)  # Mengambil artikel berdasarkan ID
       if request.method == 'POST':
           artikel.delete()  # Menghapus artikel
           return redirect('list_artikel')
       return render(request, 'crud/delete_artikel.html', {'artikel': artikel})

Penjelasan Kode:

  • get_object_or_404(Artikel, id=id): Mengambil objek artikel berdasarkan ID. Jika tidak ditemukan, akan menghasilkan halaman 404.
  • request.method == 'POST': Mengecek apakah permintaan adalah POST. Jika ya, maka data dihapus.
  • artikel.delete(): Menghapus objek artikel dari database.
  • redirect('list_artikel'): Mengarahkan pengguna kembali ke daftar artikel setelah penghapusan.

Langkah 2: Mengatur URL untuk Fungsi Delete

Selanjutnya, kita perlu menambahkan rute URL untuk mengakses fungsi Delete.

  1. Buka File urls.py di Aplikasi CRUD:
    Buka file urls.py di aplikasi CRUD.
  2. Tambahkan URL untuk Fungsi Delete:
    Tambahkan path baru yang menerima parameter ID untuk mengidentifikasi artikel yang ingin dihapus.
   from django.urls import path
   from . import views

   urlpatterns = [
       path('artikel/', views.list_artikel, name='list_artikel'),
       path('artikel/tambah/', views.create_artikel, name='create_artikel'),
       path('artikel/edit/<int:id>/', views.update_artikel, name='update_artikel'),
       path('artikel/hapus/<int:id>/', views.delete_artikel, name='delete_artikel'),  # URL untuk hapus artikel
   ]

Dengan pengaturan ini, URL http://127.0.0.1:8000/crud/artikel/hapus/<id>/ akan diarahkan ke fungsi Delete.

Langkah 3: Membuat Konfirmasi Penghapusan dengan Template HTML

Sebelum menghapus data, kita akan menampilkan halaman konfirmasi untuk memastikan pengguna benar-benar ingin menghapus data tersebut.

  1. Buat Template delete_artikel.html:
    Di dalam folder crud/templates/crud, buat file bernama delete_artikel.html dan tambahkan kode berikut:
   <!DOCTYPE html>
   <html lang="en">
   <head>
       <meta charset="UTF-8">
       <meta name="viewport" content="width=device-width, initial-scale=1.0">
       <title>Hapus Artikel</title>
   </head>
   <body>
       <h1>Apakah Anda yakin ingin menghapus artikel ini?</h1>
       <p><strong>{{ artikel.judul }}</strong></p>
       <form method="post">
           {% csrf_token %}
           <button type="submit">Ya, Hapus</button>
           <a href="{% url 'list_artikel' %}">Batal</a>
       </form>
   </body>
   </html>

Penjelasan Kode:

  • {{ artikel.judul }}: Menampilkan judul artikel yang akan dihapus sebagai informasi.
  • {% csrf_token %}: Token keamanan untuk formulir POST.
  • Tombol Ya, Hapus untuk mengirim permintaan POST dan menghapus data.
  • Tombol Batal untuk kembali ke daftar artikel tanpa menghapus data.

Langkah 4: Menguji Fungsi Delete di Browser

Saatnya menguji apakah kita bisa menghapus data melalui konfirmasi di browser.

  1. Jalankan Server Django:
    Jika server belum berjalan, jalankan perintah berikut:
   python manage.py runserver
  1. Akses Halaman Hapus Artikel:
    Buka browser dan akses URL http://127.0.0.1:8000/crud/artikel/hapus/<id>/ (ganti <id> dengan ID artikel yang ingin Anda hapus). Jika berhasil, Anda akan melihat halaman konfirmasi penghapusan.
  2. Coba Hapus Artikel:
  • Klik tombol Ya, Hapus. Jika berhasil, Anda akan diarahkan kembali ke halaman daftar artikel, dan artikel yang Anda pilih akan dihapus dari daftar.

Kesimpulan

Pada artikel ini, Anda telah mempelajari:

  • Membuat tampilan (view) untuk menghapus data dengan konfirmasi
  • Menambahkan URL untuk fungsi Delete
  • Membuat template HTML untuk konfirmasi penghapusan data
  • Menguji fungsi Delete di browser

Dengan langkah ini, aplikasi CRUD Anda kini memiliki fungsi penghapusan data yang lengkap dengan halaman konfirmasi, memberikan kontrol penuh pada pengguna untuk mengelola data mereka. Pada artikel berikutnya, kita bisa membahas cara mempercantik tampilan aplikasi CRUD ini atau bahkan menambahkan fitur keamanan dan validasi tambahan.

Leave a Reply

Your email address will not be published. Required fields are marked *