我们如何在休息框架中的欲望数据库中创建对象
How can we create object in desire database in rest framework
我正在创建项目,但该项目正在保存在默认数据库中。我想在其他数据库中创建该项目...我正在使用 CreatApiView..
class CreateProjectAPIView(generics.CreateAPIView):
"""This endpoint allows for creation of a Project"""
queryset = Project.objects.using('notification_dev').all()
serializer_class = serializers.ProjectSerializer
def get_serializer(self, *args, **kwargs):
serializer_class = self.get_serializer_class()
kwargs["context"] = self.get_serializer_context()
draft_request_data = self.request.data.copy()
print("draft_request_data :",draft_request_data)
kwargs["data"] = draft_request_data
return serializer_class(*args, **kwargs)
我不明白如何在 get_serializer
中使用 .using("otherdataName")
嗯,您不能(或者您不应该)在 get_serializer
中执行数据库操作。
执行流程是这样的:
view.create --> serializer.save --> serializer.create --> model.save
因此,编辑 model.save 函数是首选。唯一的缺点是在 bulk_create
期间,但您没有使用它。
查看 Django 文档中的以下代码:
Model.save(force_insert=False, force_update=False, using=DEFAULT_DB_ALIAS, update_fields=None)¶
所以,更新using
会有效率。
我正在创建项目,但该项目正在保存在默认数据库中。我想在其他数据库中创建该项目...我正在使用 CreatApiView..
class CreateProjectAPIView(generics.CreateAPIView):
"""This endpoint allows for creation of a Project"""
queryset = Project.objects.using('notification_dev').all()
serializer_class = serializers.ProjectSerializer
def get_serializer(self, *args, **kwargs):
serializer_class = self.get_serializer_class()
kwargs["context"] = self.get_serializer_context()
draft_request_data = self.request.data.copy()
print("draft_request_data :",draft_request_data)
kwargs["data"] = draft_request_data
return serializer_class(*args, **kwargs)
我不明白如何在 get_serializer
.using("otherdataName")
嗯,您不能(或者您不应该)在 get_serializer
中执行数据库操作。
执行流程是这样的:
view.create --> serializer.save --> serializer.create --> model.save
因此,编辑 model.save 函数是首选。唯一的缺点是在 bulk_create
期间,但您没有使用它。
查看 Django 文档中的以下代码:
Model.save(force_insert=False, force_update=False, using=DEFAULT_DB_ALIAS, update_fields=None)¶
所以,更新using
会有效率。