Serializer Django REST Framework에서 QueryString 값에 어떻게 액세스 할 수 있습니까?
-
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
제휴하지 않습니다 StackOverflow