Возврат только что созданного объекта после создания с помощью ModelViewSet

У нас есть модельViewset:

class ObjectViewSet(viewsets.ModelViewSet):

    serializer_class = MyObjectSerializer


    def perform_create(self, serializer):
        ...

    def perform_update(self, serializer):
        ...

    def perform_destroy(self, instance):
        ...

Но perform_create не возвращает только что созданный объект что означает, что ответ 201 содержит только несколько случайных полей, которые были указаны при создании, а не весь новый объект.

Есть ли какой-то особый способ получить объект, не переопределяя вызов .create()? Кажется, что возвращение нового объекта является ожидаемым поведением, поэтому я беспокоюсь, что делаю что-то не так.

Это viewset, он должен возвращать HTTP ответ клиенту, по ссылке, которую вы разместили, вы можете получить доступ к нему через serializer.instance:

Вы можете получить доступ к объекту через serializer.instance

Но сначала нужно обработать запрос и создать экземпляр:

def perform_create(self, serializer):
    # call parent class implementation to create the instance
    response = super().perform_create(serializer)
    # now you can access it via serializer
    instance = serializer.instance
    # return the response to the client
    return response
    
Вернуться на верх