Я использую https://github.com/alex/django-filter.
Когда пользователь впервые открывает страницу с фильтром, он видит пустую форму и полный список результатов.
Мне нужно не отображать результат, пока пользователь не нажмет «Поиск» в первый раз.
Другими словами - django-filter не должен отображать никаких результатов, если параметр list (в URL) пуст, и отображать все результаты, если параметр values (в URL) пуст.
Источник
filters.py
import django_filters
from product.models import Product
class ProductFilter(django_filters.FilterSet):
class Meta:
model = Product
fields = [ 'shortname', 'fullname', 'description', 'product_type' ]
views.py
from product.filters import ProductFilter
def product_search_in_ancestors(request, product_id):
context = RequestContext(request)
p = get_object_or_404( Product, pk=product_id )
q = Product.objects.filter( id__in = p.GetChilds() )
filter = ProductFilter(request.GET , queryset=q )
return render_to_response( 'product/product_search_in_ancestors.html',
{'product':p,
'filter': filter
},
context)