搜索 view/serializer - Django Rest 框架

Search view/serializer - Django Rest Framework

有没有办法在我的 DRF API 中实现搜索视图?例如,我在我的网站上使用以下代码允许用户在搜索栏中输入关键字和 return 结果。

class SearchListView(ListView):
    model = User
    template_name = 'search/results.html'

    def get_context_data(self, *args, **kwargs):
        context = super(SearchListView, self).get_context_data(*args, **kwargs)
        context['query'] = self.request.GET.get('q')
        return context

    def get_queryset(self, *args, **kwargs):
        user_qs = super(SearchListView, self).get_queryset(*args, **kwargs)
        query = self.request.GET.get('q')

        if query:
            user_qs = self.model.objects.filter(
                Q(username__icontains=query)
                )
        return user_qs

有没有办法在 DRF 中执行此操作以用于我的 API?

提前致谢!

没问题,这就是过滤的目的。

Django REST framework 文档已经提供了类似的示例。查看 http://www.django-rest-framework.org/api-guide/filtering/#filtering-against-query-parameters 了解详细实施。