【发布时间】:2015-05-13 09:41:01
【问题描述】:
我正在使用https://github.com/alex/django-filter
当用户第一次打开带有过滤器的页面时,他们会看到空表单和完整的结果列表。
在用户第一次按搜索之前,我需要不显示结果。
换句话说 - 如果参数 list (in url) 为空,django-filter 不应显示任何结果,如果参数 values (in 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)
【问题讨论】:
-
问题是,过滤器的默认视图是返回所有结果。您可能需要编辑您的视图。可以发一下吗?
-
我已经发布了我非常简单的代码
-
我要说的是,如果 url 中没有参数,你可以阻止结果的显示,但我意识到这也会阻止表单的显示。所以我不确定你想要的是否可能,除非你为表单创建一个单独的页面,并为表单/结果创建另一个页面。
-
最好 - 我希望在单页上显示表单和结果。这是 django-filter 的默认行为。
标签: django django-filter