【问题标题】:Modelviewset delete method override模型视图集删除方法覆盖
【发布时间】:2020-05-19 16:31:49
【问题描述】:

我有用户视图,当我尝试删除用户时,我想删除使用相同电子邮件的邀请模型。 如何使用destroy方法删除具有相同email的user{id}和Invite model{id)。

我的模特:

class User(AbstractBaseUser):
    first_name = models.CharField(max_length=254)
    last_name = models.CharField(max_length=254)
    email = models.EmailField(unique=True)

class Invite(models.Model):
    email = models.EmailField(unique=True)

我的观点:

class ActiveUserView(ModelViewSet):
    queryset = User.objects.all()
    permission_classes = [IsAuthenticated]
    http_method_names = ['get', 'delete']
    serializer_class = SomeUserSerializer

    def destroy(self, request, *args, **kwargs):
        user = request.user
        for user in users:
            Invite.objects.filter(email=user.email)
            invite = Invite.objects.get(email=user.email)
            invite.delete()
            return Response(status=status.HTTP_204_NO_CONTENT)

【问题讨论】:

    标签: django django-rest-framework


    【解决方案1】:

    这里不需要for循环,首先从get_object()方法中获取对象,然后删除Invite对象。

        def destroy(self, request, *args, **kwargs):
            user_object = self.get_object()
            Invite.objects.filter(email=user_object.email).delete()
            user_object.delete()
            return Response(status=status.HTTP_204_NO_CONTENT)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多