Как мы можем создать объект в базе данных 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 там будет эффективным.

Вернуться на верх