如何在django Rest框架的序列化器中获取lookup_url_kwarg

saj*_*ade 8 django django-rest-framework

这是我的 Django 视图

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

我想在我的创建序列化器函数中获取lookup_url_kwarg

Nah*_*man 2

您可以重写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
Run Code Online (Sandbox Code Playgroud)

在序列化器中,您可以使用self.context.get("foreign_server_id", "")get foreign_server_id

您可以关注此帖子以进一步了解。