首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用D jango rest framework json api发布和读取元数据

使用D jango rest framework json api发布和读取元数据
EN

Stack Overflow用户
提问于 2021-02-26 07:41:05
回答 1查看 77关注 0票数 0

我正在使用Django rest framework json api,并尝试在我的JSON:API post请求中发布一些元数据。

代码语言:javascript
复制
let user = {
    data: {
        type: "User",
        attributes: {
            type: "individual",
            status: "active"
        },
        relationships: {
            individual: {
                data: {
                    type: "Individual",
                    id: applicant.id
                }
            }
        },
        meta: {
            message: vm.createApplicantAccountMessage 
        } // <------ This is the meta info
    }
};
JsonApiService.create('users', user);

但是我不知道如何在我的视图集perform_create函数中读取它。

代码语言:javascript
复制
class UserViewSet(BaseViewSet):
    queryset = User.objects.none()
    serializer_class = UserSerializer
    filterset_class = UserFilterSet

    def perform_create(self, serializer):
        # TODO: Find out how to read what is inside the meta message here

感谢任何人的帮助!

EN

回答 1

Stack Overflow用户

发布于 2021-02-26 14:51:05

我假设您的BaseViewSet继承自viewsets.ModelViewSet,或者至少是mixins.CreateModelMixin,那么您可以重写create方法。例如:

代码语言:javascript
复制
class UserViewSet(BaseViewSet):
    queryset = User.objects.none()
    serializer_class = UserSerializer
    filterset_class = UserFilterSet

    def create(self, request, *args, **kwargs):
        print(request.data) # <- you can see coming data with request.data
        serializer = self.get_serializer(data=request.data)
        serializer.is_valid(raise_exception=True)
        self.perform_create(serializer)
        # if you do not have custom logic then you can simply return super()
        # return super().create(request, *args, **kwargs)
        return Response(serializer.data, status=status.HTTP_201_CREATED)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66378096

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档