2017-05-26 51 views
1

我有一个序列化器,它继承自django rest框架序列化器ModelSerializer在Django中重写串行器的删除方法RF

要覆盖create方法,我可以重新定义create。要重新定义更新方法,我重新定义了update。我正在查看代码,但无法找到覆盖删除的方法。我需要在序列化程序中这样做,以便我可以抓取删除用户。

任何想法,将不胜感激!

回答

1

如果您使用的是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) 

的销毁方法是如此简单(只需要打一个电话到instance.delete()),该行动没有下放到序列化程序。 DRF中的序列化程序用于与数据库模型协商外部表示。在这里你只需要删除一个模型。

+0

啊完美,正是我所需要的! –

1

我认为你可以做到这一点,但在视图的水平。

因此,如果您使用ModelViewsets,则可以覆盖destory methodperform_destroy并添加业务逻辑。