如何获取到self.perform_create(serializer)后的序列
时间: 2024-03-23 16:36:12 浏览: 16
在 Django Rest Framework 中,`self.perform_create(serializer)` 方法执行后,会创建一个新的对象,并将其保存到数据库中。如果你希望获取保存到数据库中的新对象的序列化数据,可以在调用 `self.perform_create(serializer)` 方法之后,再次对该对象进行序列化。
例如,假设你有一个视图类 `MyView`,其 `perform_create` 方法如下:
```python
class MyView(generics.CreateAPIView):
queryset = MyModel.objects.all()
serializer_class = MySerializer
def perform_create(self, serializer):
instance = serializer.save()
# do something with the new instance
return instance
```
在 `perform_create` 方法中,`serializer.save()` 会创建一个新的对象,并将其保存到数据库中。如果你希望获取该对象的序列化数据,可以在 `perform_create` 方法中添加以下代码:
```python
class MyView(generics.CreateAPIView):
queryset = MyModel.objects.all()
serializer_class = MySerializer
def perform_create(self, serializer):
instance = serializer.save()
# do something with the new instance
serialized_data = self.get_serializer(instance).data
return instance
```
在上面的代码中,`self.get_serializer(instance).data` 会对新创建的对象进行序列化,并返回序列化后的数据。你可以将其保存到变量 `serialized_data` 中,以便后续使用。