Come posso accedere ai valori di querystring in Serialer Django Rest Framework
-
21-12-2019 - |
Domanda
Sto cercando di accedere ai valori di querystring in classe serializzatore.
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')
.
Visualizzazioni
class OneZeroViewSet(viewsets.ModelViewSet):
serializer_class = OneZeroSerializer
queryset = OneZero.objects.all()
.
è questo modo giusto per accedere a querystring?
Soluzione
Quando si utilizza Viewets, è possibile accedere alla richiesta nel contesto di serializzatore (come se si acceda alla vista).È possibile accedere ai parametri di query da questo
def get_alternate_name(self, obj):
request = self.context['request']
print request.QUERY_PARAMS['q']
return 'foo'
.
L'attributo view.kwargs contiene gli argomenti denominati analizzati dal tuo URL-config, quindi dalla parte del percorso.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow