django-filter
使您可以轻松声明模型的可过滤字段。
例如,
class UserFilter(django_filters.FilterSet):
class Meta:
model = User
fields = ['username']
为exact
字段提供一个username
查找,它等效于此...
class UserFilter(django_filters.FilterSet):
class Meta:
model = User
fields = {
'username': ['exact']
}
我正在寻找一种方法来支持给定字段的所有可能的查找过滤器,这样我就不必这样做:
class UserFilter(django_filters.FilterSet):
class Meta:
model = User
fields = {
"username": ["exact", "iexact", "contains", "icontains", "startswith", ..., etc.]
}
您可以通过django lookup up api获得该字段的所有可能的查询
lookups_list = []
lookups = User._meta.get_field("username").get_lookups()
for lookup in lookups:
lookups_list.append(lookup)
lookups_list的结果:
[“精确”,“ iexact”,“ gt”,“ gte”,“ lt”,“ lte”,“中”,“包含”,'contains','startswith','istartswith','endswith','iendswith','range','isnull','regex','iregex']
因此您可以在FilterSet
中使用它