¿Cómo puedo acceder a QueryString valores en Serializador Django Rest Framework
-
21-12-2019 - |
Pregunta
Estoy tratando de acceder a querystring valores en serializador de clase.
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')
Vistas
class OneZeroViewSet(viewsets.ModelViewSet):
serializer_class = OneZeroSerializer
queryset = OneZero.objects.all()
Es esta la manera correcta de acceder a querystring?
Solución
Cuando use Viewsets, puede acceder a la solicitud en el contexto del Serializer (como acceder a la vista).Puede acceder a los parámetros de consulta de este
def get_alternate_name(self, obj):
request = self.context['request']
print request.QUERY_PARAMS['q']
return 'foo'
El atributo View.KWARGS contiene los argumentos nombrados analizados de su configuración de URL, por lo que desde la parte de la ruta.
Otros consejos
self.context['request'].query_params
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow