我对django过滤器应用程序有一个问题:如何隐藏将产生零结果的项。我认为有一个简单的方法可以做到这一点,但我想知道怎么做。在
我在ModelChoiceFilter上使用LinkWidget,如下所示:
provider = django_filters.ModelChoiceFilter(queryset=Provider.objects.all(),
widget=django_filters.widgets.LinkWidget)
我需要做的是过滤查询集并只选择将产生至少一个结果的提供者,并排除其他的结果。 有办法吗?在
如果我正确理解您的问题,我相信您希望使用AllValuesFilter。在
更多信息请访问:http://github.com/alex/django-filter/blob/master/docs/ref/filters.txt#L77
也许queryset可以是可调用的,而不是“真正的”queryset对象。这样,就可以动态生成它。至少这在Django模型中可以作为其他模型的参考。在
callable可以是模型中的类方法。在
基本上,您需要应用过滤器,然后再次应用它们,但是在新生成的queryset上。像这样:
现在,当您拥有正确的queryset时,您可以在init中动态重写提供程序:
^{pr2}$不漂亮,但很管用。您可能应该将这两个调用封装到更有效的filter方法中。在
相关问题 更多 >
编程相关推荐