Korzystam z django-filter
żeby zrobić wyszukiwarkę postów na stronie. Plik filter.py
:
import django_filters
from django_filters import CharFilter
from django.db.models import Q
from .models import *
class EntryFilter(django_filters.FilterSet):
q = django_filters.CharFilter(method='my_custom_filter',label="Search")
class Meta:
model = Entry
fields = ['q']
def my_custom_filter(self, queryset, name, value):
return Entry.objects.filter(
Q(title__icontains=value) | Q(description__icontains=value) | Q(subtitle__icontains=value)
)
views:
myFilter = EntryFilter(request.GET, queryset=Entry.objects.all())
tags = myFilter.qs
na ten moment jak mam np adres:
http://127.0.0.1:8000/razdwa/
to po wywołaniu zapytania wyszukiwarka DODAJE do adresu:
http://127.0.0.1:8000/razdwa/**?q=trzycztery**
ma ktoś pomysł jak to zrobić żeby tworzyło nowy adres? np:
http://127.0.0.1:8000/?q=trzycztery