Я использую общий ListApiView Django Restframework, сериализатор, который используют, состоит из множества других сериализаторов (вложенных сериализаторов).Мне нужно знать, как я могу использовать ключевое слово из URL и передать его сериализатору, чтобы отфильтровать результат по ключевому слову в URL.
Например, у меня есть представление API, как это
class GetList(Generics.ListApiView):
serializer Class = ABCSerializer
Я хочу передать значение из URL-адреса, чтобы отфильтровать некоторые части результатов, генерируемых сериализатором.Этот ABCSerializer состоит из многих других вложенных сериализаторов.Я хочу отфильтровать результат, используя значение из URL, а не первичный ключ.
В приведенном ниже примере показан фильтр на основе имени пользователя в URL.
url('^purchases/(?P<username>.+)/$', PurchaseList.as_view()),
мы можем написатьпросмотр, который возвратил набор запросов на покупку, отфильтрованный по части имени пользователя в URL:
class PurchaseList(generics.ListAPIView):
serializer_class = PurchaseSerializer
def get_queryset(self):
"""
This view should return a list of all the purchases for
the user as determined by the username portion of the URL.
"""
username = self.kwargs['username']
return Purchase.objects.filter(purchaser__username=username)
, используя тот же подход, что и выше, я хочу использовать фильтр запроса, основанный на строке, отличной от имени пользователя,а также передать эту строку в сериализатор.и использовать его в качестве фильтра во вложенных сериализаторах.
Спасибо