cal*_*a-c 5 django django-rest-framework
如果用户更改了对象,如何检查保存?即如果引入了与原始数据库对象的任何差异.在它可能之前pre_save()(参见django rest框架中的post_save中的对象更改),但现在已经替换为perform_update,它不再包含两个对象(原始和已修改)以进行比较.
在Django REST Framework 3中,pre_save被替换为perform_update,仅将序列化器作为参数(而不是对象本身).
您可以访问已传递到使用请求验证的数据的.validated_data属性上串行.这是推荐的替代品.object,应该允许您确定差异.
def perform_update(self, serializer):
original_object = self.get_object() # or (the private attribute) serializer.instance
changes = serializer.validated_data
serializer.save(attr=changed_value) # pass arguments into `save` to override changes
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1526 次 |
| 最近记录: |