擅长:python、mysql、java
<p>您可以创建多个版本的查询字符串,并接受列表作为筛选参数:</p>
<p><code>http://example.org/lt/list/?cities=1,2</code></p>
<hr/>
<pre><code>class CustomFilterList(django_filters.Filter):
def filter(self, qs, value):
if value not in (None, ''):
values = [v for v in value.split(',')]
return qs.filter(**{'%s__%s' % (self.name, self.lookup_type): values})
return qs
class PropertyFilter(django_filters.FilterSet):
city = django_filters.ModelMultipleChoiceFilter(queryset=City.objects.all(), widget = CheckboxSelectMultiple)
trade_type = django_filters.ModelMultipleChoiceFilter(queryset=Trade.objects.all(), widget = CheckboxSelectMultiple)
cities = CustomFilterList(name="city", lookup_type="in")
class Meta:
model = Property
fields = ['cities', 'city', 'trade_type']
</code></pre>
<p>检查此答案以正确筛选值列表:</p>
<blockquote>
<p><a href="https://stackoverflow.com/questions/24041639/possible-to-do-an-in-lookup-type-through-the-django-filter-url-parser">Possible to do an `in` `lookup_type` through the django-filter URL parser?</a></p>
</blockquote>