Tags

Cara Membuat Fitur Search Pada Django Menggunakan django-filter

Cara Membuat Fitur Search Pada Django Menggunakan django-filter

Dalam pengembangan aplikasi web menggunakan Django, seringkali kita membutuhkan fitur pencarian yang dapat membantu pengguna untuk menemukan data dengan cepat. Django menyediakan library yang kuat bernama django-filter yang memudahkan kita untuk membuat fitur pencarian ini. Dalam artikel ini, kita akan membahas cara membuat fitur pencarian menggunakan django-filter.

Langkah-langkah Membuat Fitur Pencarian dengan django-filter pada Django

Langkah 1: Instalasi django-filter

Pertama, pastikan kita telah menginstal library django-filter pada project kita.

Kita dapat melakukannya dengan menjalankan perintah berikut melalui command line:

pip install django-filter

Langkah 2: Menggunakan django-filter pada Model

Setelah menginstal django-filter, kita perlu menghubungkannya dengan model yang ingin kita berikan fitur pencarian. Misalnya, jika kita ingin membuat fitur pencarian pada model NamaModel, ikuti langkah-langkah berikut:

Impor library django-filter dan model yang akan digunakan:

from django.db import models
import django_filters

Buat kelas filter yang mewarisi dari django_filters.FilterSet dan tentukan field-field yang akan digunakan untuk pencarian:

class NamaModelFilter(django_filters.FilterSet):
    field_pencarian = django_filters.CharFilter(lookup_expr='icontains')

    class Meta:
        model = NamaModel
        fields = ['field_pencarian']

Langkah 3: Membuat URL dan View

Selanjutnya, kita perlu membuat URL dan view yang akan menangani fitur pencarian. Berikut adalah contoh langkah-langkahnya:

Di dalam urls.py, tambahkan URL yang akan digunakan untuk menampilkan halaman pencarian:

class NamaModelFilter(django_filters.FilterSet):
    field_pencarian = django_filters.CharFilter(lookup_expr='icontains')

    class Meta:
        model = NamaModel
        fields = ['field_pencarian']

Di dalam views.py, tambahkan view yang akan menampilkan halaman pencarian dan mengambil data yang relevan sesuai dengan pencarian yang dilakukan:

from django.shortcuts import render
from .models import NamaModel
from .filters import NamaModelFilter

def hasil_pencarian(request):
    nama_model_filter = NamaModelFilter(request.GET, queryset=NamaModel.objects.all())
    return render(request, 'hasil_pencarian.html', {'filter': nama_model_filter})

Langkah 4: Membuat Template untuk Halaman Pencarian

Terakhir, kita perlu membuat template untuk halaman pencarian. Berikut adalah contoh sederhana bagaimana form pencarian menggunakan django-filter dapat ditampilkan pada template hasil_pencarian.html:

<!DOCTYPE html>
<html>
<head>
    <title>Hasil Pencarian</title>
</head>
<body>
    <h1>Hasil Pencarian</h1>
    
    <form method="get" action="{% url 'hasil_pencarian' %}">
        {{ filter.form.as_p }}
        <button type="submit">Cari</button>
    </form>

    <table>
        <thead>
            <tr>
                <th>Nama Field 1</th>
                <th>Nama Field 2</th>
                <!-- Tambahkan field lainnya -->
            </tr>
        </thead>
        <tbody>
            {% for data in filter.qs %}
            <tr>
                <td>{{ data.field1 }}</td>
                <td>{{ data.field2 }}</td>
                <!-- Tambahkan field lainnya -->
            </tr>
            {% empty %}
            <tr>
                <td colspan="2">Tidak ada data yang ditemukan.</td>
            </tr>
            {% endfor %}
        </tbody>
    </table>
</body>
</html>

Kesimpulan

Dengan menggunakan django-filter, kita dapat dengan mudah membuat fitur pencarian yang efektif pada aplikasi web Django kita. Dalam artikel ini, kita telah membahas langkah-langkah dari instalasi hingga implementasi fitur pencarian menggunakan django-filter. Dengan mengikuti langkah-langkah tersebut, kita dapat memberikan pengalaman pencarian yang lebih baik kepada pengguna aplikasi website kita. Selamat mencoba!


 


Bagikan tutorial ini:
Laporkan

Dapatkan Tutorial Exclusive Via Email?


Partners