class AlertFilter(django_filters.rest_framework.FilterSet):
.......
to_bearer_service = django_filters.rest_framework.CharFilter(method='to_bearer_service_filter', label='bearer_service')
class Meta:
model = Alert
fields = [......, 'to_bearer_service']
@staticmethod # 如果想获取请求信息可以去掉这个静态方法的装饰器,为什么要加静态方法装饰器我也不清楚
def to_bearer_service_filter(queryset, name, value):
Q_id = Q()
for i in value.split(","):
if i == "0":
Q_id.add(Q(**{'to_bearer_service':None}), Q.OR)
else:
Q_id.add(Q(**{'to_bearer_service_id': int(i)}), Q.OR)
queryset = queryset.filter(Q_id)
return queryset
def to_bearer_service_filter(self, queryset, name, value):
Q_id = Q()
for i in value.split(","):
if i == "0":
Q_id.add(Q(**{'to_bearer_service':None}), Q.OR)
else:
Q_id.add(Q(**{'to_bearer_service_id': int(i)}), Q.OR)
queryset = queryset.filter(Q_id)
return queryset
Django restful framework 中的 filter 自定义过滤
最新推荐文章于 2023-04-11 17:15:00 发布
本文详细介绍了如何在Django框架中使用自定义过滤器来处理复杂的数据查询需求,特别是针对'to_bearer_service'字段的过滤逻辑进行了深入探讨。通过示例代码,展示了如何创建FilterSet类,并使用CharFilter方法实现对特定字段的过滤,包括处理空值和多个值的情况。
6766

被折叠的 条评论
为什么被折叠?



