首页 > 解决方案 > ModelViewSet 多个数据库 put get post serializer.is_valid

问题描述

我使用多个数据库。Branch.objects.using (db_name) .update (**validated_data) 也以这种方式更新,但我必须执行“serializer.is_valid(raise_exception=True)”。它不断地从默认数据库返回有效错误。如何安装 ModelViewSet put get 并发布“using(db)”。你能帮助我吗?我很抱歉我的英语不好。

class BranchViewSet(viewsets.ModelViewSet):
    queryset = Branch.objects.all()
    serializer_class = BranchSerializer

    def get_queryset(self):
        company_db = self.request.GET.get('company-db', False)
        db_name = self.request.GET.get('db-name', False)
        if db_name and company_db :
            queryset = Branch.objects.using(db_name).filter(company_db=company_db)
        else:
            queryset = Branch.objects.none()
        return queryset

    def update(self, request, *args, **kwargs):
        request.data._mutable = True
        instance = self.get_object()
        serializer = self.get_serializer(instance, data=request.data)
        serializer.is_valid(raise_exception=True) # is_valid().using("self.request.GET.get('db-name')") < does it check from the second database here?
        self.perform_update(serializer)
        return Response(serializer.data)

标签: djangodjango-rest-framework

解决方案


推荐阅读