django-rest-framework - DRF - 如何在 CreateAPIView 中获取创建的对象
问题描述
我的目标非常类似于在这个问题中提出的问题,但从 DRF 的角度来看,而不是从表格的角度来看。
所以基本上问题是,我怎样才能在下面的代码片段中获得新创建的对象:
TestSerializer(serializers.ModelSerializer)
class Meta:
fields = '__all__'
model = TestModel
class TestView(generics.CreateAPIView):
serializer_class = TestSerializer
def create(self, request, *args, **kwargs):
response = super(TestView, self).create(request, *args, **kwargs)
created_model_instance = .... ?
print(created_model_instance.id)
return response
解决方案
您可以覆盖perform_create
并使用serializer.save
来获取创建的对象,例如:
class TestView(generics.CreateAPIView):
serializer_class = TestSerializer
def perform_create(self, serializer):
"""Some doc here!"""
obj = serializer.save()
print(obj.id)
推荐阅读
- batch-file - 如何使用批处理脚本删除特定文件夹中的所有文件
- r - 当艺术家名称不起作用时,使用来自 spotifyr 的 get_artist_audio_features
- javascript - 如何手动将 Linking.getInitialUrl 设置为空
- php - 更新我的证书后出现 SMTP 错误(SSL3_GET_SERVER_CERTIFICATE:证书验证失败)
- javascript - MongoDb 更新到数组
- ramda.js - Ramda 从数组内的嵌套对象中获取值
- reactjs - 离子标签栏更改 URL 但未呈现页面
- shell - 如何将参数传递给Dockerfile中的shellscript
- python - 使用 flasgger 库在 Python 中 Swagger 更改基本 URL
- c# - System.TypeLoadException 发生在具有不同版本的重复依赖项上