14-2 过滤搜索排序-DRF搜索

目录:

  • 搜索定义和实现

一、搜索定义和实现

1.1、搜索定义

  我们每次在搜索的服务的时候,都是以 http://127.0.0.1:8000/api/game.json?search=QQ ,而且搜索的字段都是我们自己定义好的,后面的搜索 字段必须以 search 定义,不能是其他字段,那这个我们如何在DRF中去实现呐。

1.2、实现

说明:其实分两步走,导入搜索的过滤器,然后定义搜索的 字段,搜索的条件就在这几个条件中去查找

from .custom_model_view_set import CustomModelViewSet
from django_filters.rest_framework import DjangoFilterBackend
from .custom_filter import GameFilter
from rest_framework import filters


class GameView(CustomModelViewSet):
    queryset = Game.objects.all()
    serializer_class = GameSerializer

    filter_backends = (DjangoFilterBackend, filters.SearchFilter) #导入filters.SearchFilter 过滤器

    # 过滤
    # filter_fields = ('name', 'status')
    filterset_class = GameFilter

    # 搜索字段
    search_fields = ("name", "status")

1.3、postman测试结果

搜索:http://127.0.0.1:8000/api/game/?search=QQ

 

 

搜索status,因为我在 搜索的定义的字段有status:http://127.0.0.1:8000/api/game/?search=1

 

posted @ 2020-05-09 17:16  帅丶高高  阅读(301)  评论(0)    收藏  举报