我想过滤id为的对象。如下所示
获取超过12个,介于6到12之间,类似这样的
我这样设置RangeFilter()
,但它只显示相等。
不超过
class MyTextFilter(filters.FilterSet):
my_text = filters.CharFilter(lookup_expr='contains')
id = filters.RangeFilter()
class Meta:
model = MyText
fields = ('id','myText')
感谢@Mohammad Ali answer
我这样修改代码,但仍然
invalid literal for int() with base 10: 'id'
错误
from django_filters import rest_framework as filters
class MyTextFilter(filters.FilterSet):
my_text = filters.CharFilter(lookup_expr='contains')
id = filters.CharFilter(method='id_filter')
class Meta:
model = MyText
fields = ('id','myText')
def id_filter(self, queryset, value, *args, **kwargs):
return queryset.filter(id>int(value))
最后我解决了这个问题
return queryset.filter(id__gte=args[0])
可以对过滤器类中的每个字段使用过滤器方法
相关问题 更多 >
编程相关推荐