Serializer Django REST Framework에서 QueryString 값에 어떻게 액세스 할 수 있습니까?

StackOverflow https://stackoverflow.com//questions/23006735

  •  21-12-2019
  •  | 
  •  

문제

Serializer 클래스에서 QueryString 값에 액세스하려고합니다.

class OneZeroSerializer(rest_serializer.ModelSerializer):

    location = rest_serializer.SerializerMethodField('get_alternate_name')

    def get_alternate_name(self, obj):
        view = self.context['view']
        print view.kwargs['q']  #output is {}
        return 'foo'


    class Meta:
        model = OneZero

        fields = ('id', 'location')
.

views

class OneZeroViewSet(viewsets.ModelViewSet):

   serializer_class = OneZeroSerializer

   queryset = OneZero.objects.all()
.

queryString에 액세스하는 올바른 방법입니까?

도움이 되었습니까?

해결책

ViewETS를 사용할 때는 serializer 컨텍스트에서 요청에 액세스 할 수 있습니다 (보기에 액세스하는 것처럼).이

에서 쿼리 매개 변수에 액세스 할 수 있습니다.
def get_alternate_name(self, obj):
    request = self.context['request']
    print request.QUERY_PARAMS['q']
    return 'foo'
.

속성 view.kwargs는 URL-config에서 구문 분석 된 명명 된 인수를 경로 부품에서 포함합니다.

다른 팁

docss self.request.QUERY_PARAMS

여기를 볼 수 있습니다

업데이트 :

DRF 3.0시 :

request.query_params의 사용법은 이제 호의적으로 사용되지 않는 것을 보류 중입니다. Sworcased Request.query_Params

self.context['request'].query_params

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top