我有一个继承自django rest framework serializer ModelSerializer
的序列化程序。
要覆盖create方法,我可以重新定义create
。要重新定义更新方法,我重新定义update
。我虽然查看了代码但无法找到覆盖删除的方法。我需要在序列化程序中执行此操作,以便我可以抓取删除用户。
任何想法都将不胜感激!
答案 0 :(得分:4)
如果你正在使用ModelViewSet,你可以在视图中执行:
class YourViewSetClass(ModelViewSet):
def destroy(self, request, *args, **kwargs):
user = request.user # deleting user
# you custom logic #
return super(YourViewSetClass, self).destroy(request, *args, **kwargs)
destroy方法非常简单(只是调用instance.delete()),操作不会委托给序列化程序。 DRF中的序列化程序用于协商与数据库模型之间的外部表示。在这里,您只想删除模型。
答案 1 :(得分:2)
我认为你可以在视图级别做到这一点。
因此,如果您正在使用ModelViewsets,则可以覆盖destory method或perform_destroy
并添加您的业务逻辑。