尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

Django 中使用 filter 过滤不等于条件

发布时间:2026/9/29 9:16:14

资讯中心
01
ARTICLE

Django 中使用 filter 过滤不等于条件

Django 中使用 filter 过滤不等于条件
在 Django 的 API 过滤 (django_filters) 中需要实现category字段不等于 6 的过滤规则。由于django_filters主要用于包含特定条件的数据而不直接支持exclude操作因此需要采用自定义方法来实现该过滤条件。解决方案在AoYuStudentFilter过滤类中添加一个category_not过滤器并使用methodfilter_category_not指定自定义过滤方法。该方法通过queryset.exclude(categoryvalue)过滤掉category等于 6 的数据从而返回符合条件的数据集。这样在 API 请求时可以使用category_not6作为查询参数来排除category为 6 的数据。fromdjango_filtersimportrest_frameworkasfiltersfrom.modelsimportMyModelclassAoYuStudentFilter(filters.FilterSet):category_notfilters.NumberFilter(methodfilter_category_not)classMeta:modelMyModel fields[name_student,id_student,voucher_number,from_high_school,from_university,subjects_before,subjects_after,from_university_major,date_admission_daterangeStart,date_admission_daterangeEnd,create_datetime_daterangeStart,create_datetime_daterangeEnd,score_total_min,score_total_max,category_not]deffilter_category_not(self,queryset,name,value): 过滤掉 category 等于指定值的记录 ifvalueisnotNone:returnqueryset.exclude(categoryvalue)returnqueryset在 API 请求中可以使用category_not6作为查询参数。例如GET /api/students/?category_not6此查询将返回所有category不等于 6 的记录。该方法确保django_filters仍然保持灵活性同时能够满足排除特定值的需求。代码结构清晰适用于 Django REST framework 过滤需求并可根据具体需求进一步扩展。
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

◈

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

◐

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

▲

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。