Настроенный CreateModelMixin - создание объекта, определенного в моей модели

Мое представление rest api определяет только два метода:

class RequestSerializerViewSet(mixins.CreateModelMixin,
                    mixins.ListModelMixin,
                    viewsets.GenericViewSet):

У меня есть некоторый опыт перезаписи списка, но у меня нет опыта перезаписи create, так как это кажется намного сложнее.

Я хочу добиться следующего. В моей модели Request есть специальный метод, который создает экземпляр Requests - start_request. Этот метод создает не только экземпляр Request, но и некоторые дополнительные внешние объекты и присваивает их только что созданному Request.

Моя цель - модифицировать метод rest api POST (create, perform_create или serializer - я понятия не имею сейчас, какой способ правильный) так, чтобы он не создавал Request самостоятельно, а использовал start_request метод модели. Каким будет лучший подход django к этому?

Вы можете переопределить метод create в своем сериализаторе. Предположим, что у вас есть RequestSerializer:

class RequestSerializer(serializers.ModelSerializer):
    class Meta:
        model = Request
        fields = "__all__"

    def create(self, validated_data):
        request = Request.start_request(**validated_data)  # pass all parameters from serializer
        return request
Вернуться на верх