搜索 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 了解详细实施。
有没有办法在我的 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 了解详细实施。