在哪里可以访问 Django Rest Framework 中的请求参数?

2023-12-27

我使用 Django Rest Framework 和 python-requests 并通过 URL 传递多个变量,如下所示。

GET /api/boxobjects/?format=json&make=Prusa&model=i3&plastic=PLA HTTP/1.1

我正在传递变量品牌、型号和塑料。访问这些参数的推荐方法如下所示。

makedata = request.GET.get('make', '')

但是,我不知道该行代码应该放在哪里。我已经完成了 Django Rest Framework 的教程,并将我的视图设置为与教程大致匹配。

views.py:

@api_view(['GET'])
@login_required
def api_root(request, format=None):
    return Response({
        'Users': reverse('api:user-list', request=request, format=format),
        'Objects': reverse('api:object-list', request=request, format=format),
        'Files': reverse('api:file-list', request=request, format=format),
        'Config Files': reverse('api:config-list', request=request, format=format),
        'Box-objects': reverse('api:box-object-list', request=request, format=format),
    })

class BoxViewSet(viewsets.ModelViewSet):
    queryset = Uploadobject.objects.all().exclude(verified=False)
    serializer_class = BoxSerializer
    permission_classes = (permissions.IsAuthenticatedOrReadOnly,
                            IsBox)

    def perform_create(self, serializer):
        serializer.save(owner=self.request.user)

    #Maybe get function here? Not displaying
    '''
    def get(self, request):
        print ("request set here?")
    '''

我应该在哪里放置一行代码来访问这些请求参数?


class BoxViewSet(viewsets.ModelViewSet):
    queryset = Uploadobject.objects.all().exclude(verified=False)
    serializer_class = BoxSerializer
    permission_classes = (permissions.IsAuthenticatedOrReadOnly,
                            IsBox)

    def perform_create(self, serializer):
        serializer.save(owner=self.request.user)


    def get_queryset(self):
        req = self.request
        print(req)
        make = req.query_params.get('make')
        if make:
            self.queryset = uploadobject.objects.filter(make=make)
            return self.queryset
        else:
            return self.queryset

声明在做什么?

If 'make'位于请求的查询参数中,然后覆盖BoxViewSet具有基于新查询集的查询集属性'make'并归还它。否则返回默认查询集,排除任何未经验证的对象。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在哪里可以访问 Django Rest Framework 中的请求参数? 的相关文章

随机推荐