Как мы можем создать объект в базе данных desire в 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)
Я не понимаю, как я могу использовать .using("otherdataName")
в get_serializer
Ну, вы не можете (или не должны) выполнять операции с базой данных в 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
там будет эффективным.