django rest framework使用django-filter注意事项:
一定要在setting文件里面加载如下代码,而不是只安装包,否则django应用不报错,但是不能正确过滤。
“` INSTALLED_APPS = [ ‘django_filters' ] REST_FRAMEWORK = { ‘DEFAULT_FILTER_BACKENDS': ( ‘django_filters.rest_framework.DjangoFilterBackend', ), }
补充知识:rest_framework--filters和django-filters混合使用-过滤搜索
view
from rest_framework.pagination import PageNumberPagination from rest_framework import mixins from rest_framework import viewsets from rest_framework import filters from django_filters.rest_framework import DjangoFilterBackend from .models import Goods from .serializers import GoodsSerializer # 导入过滤器类 from .filters import GoodsFilter class GoodsPagination(PageNumberPagination): page_size = 10 page_size_query_param = "page_size" page_query_param = "p" max_page_size = 100 class GoodsListViewSet(mixins.ListModelMixin, viewsets.GenericViewSet): # 指定queryset queryset = Goods.objects.all() # 指定序列化类 serializer_class = GoodsSerializer # 指定分页类 pagination_class = GoodsPagination # 添加过滤器 这里可以吧django-filter过滤器添加进来 和 rest_framework的filters添加进来一起用, 也可以单个用, 看你的需求 filter_backends = [DjangoFilterBackend, filters.SearchFilter] # 只需要简单的基于等同的过滤,则可以filter_fields在视图或视图集上设置属性,列出要过滤的字段集。 # 等同就是根据你过滤的字段的数据必须跟数据库里那个字段的数据相同 # filter_fields = ['name', 'shop_price'] # 指定过滤器类 filter_class = GoodsFilter search_fields = ['name', 'goods_brief', "goods_desc"]
过滤器类–根据自己需求定义
import django_filters from .models import Goods class GoodsFilter(django_filters.rest_framework.FilterSet): """ 商品的过滤类 """ # 大于这个值 name指定字段 lookup_expr过滤条件 # NumberFilter 数字类型 price_min = django_filters.NumberFilter(name="shop_price", lookup_expr="gte") # 小于这个值 price_max = django_filters.NumberFilter(name="shop_price", lookup_expr="lte") # name模糊查询, 不指定过滤条件, 必须全部匹配 # CharFilter字符串类型 name = django_filters.CharFilter(name="name", lookup_expr="icontains") class Meta: # 指定模型类 model = Goods # 显示这两个字段 fields = ["price_min", "price_max", "name"]
settings
INSTALLED_APPS = [ # drf过滤器 也 是xadmin的过滤器 'django_filters', 'rest_framework', ]
url
from django.conf.urls import url, include from rest_framework.routers import DefaultRouter from goods.views import GoodsListViewSet # 生成一个注册器实例对象 router = DefaultRouter() # 将需要自动生成url的接口注册 # 配置goods的url router.register(r'goods', GoodsListViewSet, base_name="goods-list") urlpatterns = [ # 自动生成url url(r"^", include(router.urls)), ]
效果图
以上这篇django rest framework使用django-filter用法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
华山资源网 Design By www.eoogi.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
华山资源网 Design By www.eoogi.com
暂无评论...
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
2024年09月28日
2024年09月28日
- 纪钧瀚《钢琴阅读时光 雨中书店聆听轻音乐》[FLAC/分轨][399.62MB]
- 证声音乐图书馆《走向自然 疗心爵士乐》[320K/MP3][87.4MB]
- 证声音乐图书馆《走向自然 疗心爵士乐》[FLAC/分轨][184.94MB]
- 陈慧娴.2018-Priscilla-Ism演唱会3CD(2024环球红馆40复刻系列)【环球】【WAV+CUE】
- 郑秀文.1999-我应该得到(国)【华纳】【WAV+CUE】
- 陈家慧.2011-钢琴酒吧2CD【龙吟唱片】【WAV+CUE】
- 证声音乐图书馆《雨季 蓝调吉他 Rainy Blues》[320K/MP3][45.01MB]
- 证声音乐图书馆《雨季 蓝调吉他 Rainy Blues》[FLAC/分轨][109.13MB]
- 赞多《序章》[320K/MP3][45.54MB]
- 许巍.2004-每一刻都是崭新的【步升大风】【WAV+CUE】
- 群星.2024-四方馆影视原声带【韶愔音乐】【FLAC分轨】
- 陈雷.1997-安锁咧【金圆唱片】【WAV+CUE】
- 关淑怡.2013-MY.FAVORITE.SK.3CD【环球】【WAV+CUE】
- Sweety.2006-花言乔语【丰华】【WAV+CUE】
- 李恕权.2003-回·20年全精选2CD【SONY】【WAV+CUE】