python - 覆盖 Django RF 中的序列化程序删除方法

标签 python django django-rest-framework

我有一个继承自 django rest framework 序列化器 ModelSerializer 的序列化器。

要覆盖创建方法,我可以重新定义create。为了重新定义更新方法,我重新定义了update。我正在查看代码,但找不到覆盖删除的方法。我需要在序列化程序中执行此操作,以便抓取正在删除的用户。

如有任何想法,我们将不胜感激!

最佳答案

如果您使用的是 ModelViewSet,则可以在 View 中执行此操作:

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() 的调用),操作没有委托(delegate)给序列化程序。 DRF 中的序列化程序用于与数据库模型协商外部表示。在这里您只想删除一个模型。

关于python - 覆盖 Django RF 中的序列化程序删除方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44209878/

相关文章:

python - 如何在 Django REST 框架中的 as_view 中传递额外的参数

python - 解析列表以获取精确值

python - 如何将整数中的数字相加

python - 如何在 Flask/Jinja 中选择/减少字典列表

django - 在 Django 中访问移动浏览器位置数据

javascript - NoReverseMatch 与 Django url

python - Django Rest Framework 序列化程序单独呈现表单

python - 这个条件是如何处理的?

python - 我如何要求此 Django View 使用 HTTPS?

python - Django 序列化器根据外键关系列表的一侧显示不同的字段