【问题标题】:Django restframework search function doesn't return the desired output?Django rest 框架搜索功能没有返回所需的输出?
【发布时间】:2021-06-29 06:27:26
【问题描述】:

我想在尝试实现它时使用 Django 搜索功能。实现的代码不起作用

查看.py文件

class SearchView(generics.ListAPIView):
    permission_classes = [IsAuthenticated]
    queryset = BlogDetails.objects.all()
    search_fields = ["blog_title"]
    filter_backend = [filters.SearchFilter]
    serializer_class = SearchSerializer

序列化器.py

class SearchSerializer(serializers.ModelSerializer):
    class Meta:
        model = BlogDetails
        fields = ("blog_title","blog_author")

所以我提出了这样的要求

localhost:8000/search/search-blog/?search=jane

我使用的数据库是 PostgreSQL

但它显示了数据库中的所有博客,而不是标题中包含 jane 的结果,我在 INSTALLED_APPS 中添加了 django-filters 但它仍然不起作用!

【问题讨论】:

    标签: django search model


    【解决方案1】:

    filters.SearchFilter 来自 DRF,而不是 django-filers。您是否将过滤器后端全局配置为django-filters?我不确定 ATM,但这可能是造成这种情况的一个可能原因。

    您提供的示例在没有django-filters 的情况下应该可以正常工作。

    尝试从DEFAULT_FILTER_BACKENDS 中删除django-filters。如果不可能,请尝试在此视图上覆盖 filter_backends = []。

    【讨论】:

    • 是的,我已经配置了 django-filters 并在设置中使用了它,我犯的错误是我错过了 filter_backend 中的 s,它应该是 filter_backends。无论如何,感谢您的时间和帮助
    猜你喜欢
    • 2015-08-24
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 2019-11-27
    • 2017-10-14
    • 2016-12-20
    • 1970-01-01
    相关资源
    最近更新 更多