Настроенный 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