【发布时间】:2019-09-29 12:15:17
【问题描述】:
我是一个初学者,使用 Django REST 框架开发了一个小的 REST API 项目。 PostgreSQL 数据库中有一堆带有文本字段的记录,我有一些关键字列表。我正在尝试过滤包含此文本字段中我的一个或一些关键字列表中的单词的数据。
您能否建议我另一种方式来组织 DRF 中的过滤,即一次使用整个关键字列表而不在表单中输入它们?
我正在尝试使用 django_filters 来实现
这里 if 过滤器类:
# filter
class DataFilter(django_filters.rest_framework.FilterSet):
keyword = CharFilter(field_name='description', lookup_expr='icontains')
class Meta:
model = Data
fields = ('keyword', )
这里如果查看类:
# view
class DataList(generics.ListAPIView):
def get_queryset(self):
return Data.objects.filter(deadline__gte=date.today())
serializer_class = DataSerializer
filter_backends = (filters.DjangoFilterBackend,)
filterset_class = DataFilter
但在这种情况下,它只过滤我在表单中输入的一个词。
【问题讨论】:
-
嗨,伊万!非常感谢。但不幸的是,它不起作用 - 空结果(
-
嗨,@caravan4eg 你试过下面给出的答案吗:)?你遇到过什么问题吗?
-
嗨,@ruddra!是的,我做到了)但是,我仍然遇到了麻烦。伊万的建议必须有效,但在我的情况下,它不会过滤并且什么也不返回(
标签: python django django-rest-framework django-filter