Как я могу получить доступ к значениям QueryString в Serializer Django Read Framework
-
21-12-2019 - |
Вопрос
Я пытаюсь получить доступ к значениям 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')
.
<Сильные> Просмотры
class OneZeroViewSet(viewsets.ModelViewSet):
serializer_class = OneZeroSerializer
queryset = OneZero.objects.all()
.
Это правильный путь к доступе к QueryString?
Решение
При использовании призваний вы можете получить доступ к запросу в контексте серии Serializer (например, вы получите доступ к просмотру).Вы можете получить доступ к параметрам запроса из этого
def get_alternate_name(self, obj):
request = self.context['request']
print request.QUERY_PARAMS['q']
return 'foo'
.
Атрибут View.kwargs содержит названные аргументы, проанализированные с вашим URL-конфигурации, поэтому из путей.
Не связан с StackOverflow