Возврат только что созданного объекта после создания с помощью 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