码到末日 2023-02-03 13:09 采纳率: 100%
浏览 45
已结题

django + django_filter过滤设置无效的问题

django + django_filter过滤设置无效的问题
整个配置完后,不出错,但是就是没有想要的效果,麻烦大家给看看是咋回事。
如图,本来只查询千字文,结果出来的是整个列表;

img

以下为代码,专门为搜索写了一个BookSearchView:

模型:

class Book(models.Model):
    title = models.CharField(max_length=32,verbose_name="书籍名称")
    price = models.IntegerField(verbose_name="价格")
    pub_date = models.DateField(verbose_name="出版日期")
    
    bread = models.IntegerField(verbose_name="阅读量") 
    bcomment = models.IntegerField(verbose_name="评论量") 
    
    publish = models.ForeignKey("Publish",on_delete=models.CASCADE,verbose_name="出版社")
    authors = models.ManyToManyField("Author",verbose_name="作者")

    def __str__(self):
        return self.title

实现:

from rest_framework.generics import GenericAPIView,ListCreateAPIView,RetrieveUpdateDestroyAPIView
from django_filters import rest_framework as filters
from django_filters.rest_framework import DjangoFilterBackend

class BookView(ModelViewSet):
# class BookView(ListCreateAPIView):
    queryset = Book.objects.all()
    serializer_class = BookSerializer

class BookSearchView(ListCreateAPIView):
    queryset = Book.objects
    serializer_class = BookSerializer
    filter_backends = [DjangoFilterBackend]
    filter_fields = ['title']
看了各种资料都不知道问题在哪里。
  • 写回答

2条回答 默认 最新

  • 琳&君 2023-03-03 20:35
    关注
    settings.py
    INSTALLED_APPS = [
        'rest_framework',
        'django_filters',
    ]
    
    views.py
    from django_filters import rest_framework as filters
    
    class CourseListView(ListAPIView):
        queryset = models.Course.objects.filter(is_show=True, is_deleted=False)
        serializer_class = CourseModelSeralizer
        filter_backends = (filters.DjangoFilterBackend,)
        filterset_fields = ('course_category',)
    
    

    新版改了字段名称
    可以看一下官方文档
    https://django-filter.readthedocs.io/en/main/guide/rest_framework.html

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 6月21日
  • 已采纳回答 6月13日
  • 创建了问题 2月3日

悬赏问题

  • ¥15 yolov5目标检测并显示目标出现的时间或视频帧
  • ¥15 电视版的优酷可以设置电影连续播放吗?
  • ¥50 复现论文;matlab代码编写
  • ¥30 echarts 3d地图怎么实现一进来页面散点数据和卡片一起轮播
  • ¥15 数字图像的降噪滤波增强
  • ¥15 心碎了,为啥我的神经网络训练的时候第二个批次反向传播会报错呀,第一个批次都没有问题
  • ¥15 MSR2680-XS路由器频繁卡顿问题
  • ¥15 VB6可以成功读取的文件,用C#读不了
  • ¥15 如何使用micpyhon解析Modbus RTU返回指定站号的湿度值,并确保正确?
  • ¥15 C++ 句柄后台鼠标拖动如何实现