Как получить lookup_url_kwarg в серилайзере django rest framework - PullRequest
2 голосов
/ 28 мая 2020

это мой Django вид

class CreateForeignTableView(CreateAPIView):
"""
create foreign_table finally not difference a normal table ??
"""
serializer_class = CreateForiegnTableSerializer
queryset = None
lookup_url_kwarg = 'foreign_server_id'

Я хочу получить lookup_url_kwarg в моей функции создания сериализатора

1 Ответ

1 голос
/ 28 мая 2020

Вы можете переопределить метод get_serializer_context для достижения этого.

class CreateForeignTableView(CreateAPIView):
    """
    create foreign_table finally not difference a normal table ??
    """
    serializer_class = CreateForiegnTableSerializer
    queryset = None
    lookup_url_kwarg = 'foreign_server_id'

    def get_serializer_context(self):
        context = super(CreateForeignTableView, self).get_serializer_context()
        context.update({
            "foreign_server_id": self.kwargs.get(self.lookup_url_kwarg)
        })
        return context

В сериализаторе вы можете использовать self.context.get("foreign_server_id", ""), чтобы получить foreign_server_id.

Вы можете следовать этот пост чтобы узнать дальше.

...