【发布时间】:2019-03-20 11:23:57
【问题描述】:
我正在使用 DRF 视图集来搜索名称,但只搜索部分文本。问题是我使用get_queryset 使用icontains 从数据库中过滤数据:
class CustomerViewSet(viewsets.ModelViewSet):
serializer_class = serializers.CustomerSerializer
permission_classes = [IsAuthenticated]
lookup_field = 'full_name'
def get_queryset(self):
if self.kwargs:
return models.Customer.objects.filter(full_name__icontains=self.kwargs['full_name'])
else:
return models.Customer.objects.all()
视图向我发送了404 error,但是当我在终端中打印它时,它会显示现有数据。
【问题讨论】:
-
您是否调试并确认您的
if self.kwargs语句是正确的,并且查询集实际上返回了您所期望的? -
是的,我做到了,即使是空的也是如此(我已经解决了这个问题)。问题是视图没有序列化模型,但是当我将它转储到终端时,它会显示数据。
-
您的序列化程序会以某种方式丢失数据吗?而且,嗯,你肯定访问了正确的 URL 对吧?
-
urls.py 是什么样的?您执行的请求是什么样的?
-
添加您的
urls.py内容和您呼叫的实际 URL 将有助于其他人更好地了解您的问题。
标签: django django-rest-framework