@Lepilov

Как передать переменные из url в сериализатор?

Использую во вьюхе APIView. При использовании generics насколько я знаю есть возможность передавать контекст с помощью метода get_serializer_context

urls.py
path('upload_excel_rfi/<str:rfiid>/<int:vendor>/<int:analyst>/', UploadElementFromExcelFile.as_view()


views.py

class BlaBlaClass(generics.ListCreateView):
    ....
def get_serializer_context(self):
    return {"rfiid": self.kwargs['rfiid']}


И в сериализаторе принять

serializers.py

class BlaBlaSerializer(serializer.Modelserilizer):
    
    def post(self):
        rfiid = self.context["rfiid"]


Но вот с чистым APIView это не срабатывает. Есть какой-то аналог этого метода?

Знаю что можно передавать extra context простым словарем в сериализатор, типа такого
context = {"rfiid": kwargs.get('rfiid')}
serializer = BlaBlaSerializer(data=data, context=context)

И это работает, но в сравнении с методом как то не красиво выглядит)
  • Вопрос задан
  • 413 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы