Django 基于视图集中url的Rest框架对象过滤器
如何根据url筛选对象? 我跟着它,它返回404 网址Django 基于视图集中url的Rest框架对象过滤器,django,django-views,django-rest-framework,Django,Django Views,Django Rest Framework,如何根据url筛选对象? 我跟着它,它返回404 网址 router.register(r'api/main/search/$', restviews.SearchResult) 序列化程序 class ListingSerializer(serializers.ModelSerializer): class Meta: model = Listing fields = ('name', 'categories', 'service', 'desc')
router.register(r'api/main/search/$', restviews.SearchResult)
序列化程序
class ListingSerializer(serializers.ModelSerializer):
class Meta:
model = Listing
fields = ('name', 'categories', 'service', 'desc')
景色
class SearchResult(viewsets.ReadOnlyModelViewSet):
model = Listing
def list(self, request):
if request.QUERY_PARAMS == 'GET' and request.QUERY_PARAMS.get('sec') == '1':
key = request.GET.get('keyword')
queryset = Listing.objects.filter(service__name__contains=key,).distinct()
serializer = ListingSerializer(queryset, many=True)
return Response(serializer.data)
else:
content = {'Error': 'nothing to see here'}
return Response(content, status=status.HTTP_404_NOT_FOUND)
视图的逻辑取自正常工作的基本模型视图。因此,我认为这不是查询问题,更可能是其他原因导致了问题。您似乎在这里进行了错误的比较:
if request.QUERY_PARAMS==“GET”
应该是
if request.method=='GET'
从您发布的链接:
通常需要至少提供queryset和serializer\u类属性。
此外,如果您查看文档中有关过滤的部分,您会发现建议使用get\u queryset方法进行过滤。更准确地说,您应该使用关于的部分