Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Django rest框架中执行删除操作?_Django_Django Rest Framework - Fatal编程技术网

如何在Django rest框架中执行删除操作?

如何在Django rest框架中执行删除操作?,django,django-rest-framework,Django,Django Rest Framework,您好,我是Django rest框架的新手,我想创建自定义的删除功能来删除。我成功地创建了创建和更新,如下代码所示,但我无法创建删除功能。但是我搜索了很多关于它的文章,但我没有找到。希望您能帮助我 1.models.py 2.序列化程序.py 4.views.py ModelViewSet有一个函数,当您删除请求时会调用该函数,该函数称为destroy 这就是它的样子: def destroy(self, request, *args, **kwargs): instan

您好,我是Django rest框架的新手,我想创建自定义的删除功能来删除。我成功地创建了创建更新,如下代码所示,但我无法创建删除功能。但是我搜索了很多关于它的文章,但我没有找到。希望您能帮助我

1.models.py 2.序列化程序.py 4.views.py
ModelViewSet有一个函数,当您删除请求时会调用该函数,该函数称为
destroy

这就是它的样子:

    def destroy(self, request, *args, **kwargs):
        instance = self.get_object()
        self.perform_destroy(instance)
        return Response(status=status.HTTP_204_NO_CONTENT)
因此,要从数据库中删除实例,您可以

instance.delete()
这就是
perform\u destroy
的实际功能


因此,您可以从中获得灵感并实现自定义删除。

还有一个基于通用删除类的视图,如图所示

    class StudentViewset(viewsets.ModelViewSet):
        queryset = Student.objects.all()
        serializer_class = StudentSerializer

        http_methods = ['get', 'post','put',]


        def create(self, request):
            serializer = self.get_serializer(data=request.data)
            serializer.is_valid(raise_exception=True)

            row = serializer.data
            user = row['user']

            if user['password'] != user['re_password']:
                return Response({'message':'pw not matched'})

            email = username = row['user']['email']

            user, created = User.objects.get_or_create(email=email, 
                defaults={'full_name':row['user']['full_name'],'addresss':row['user']['addresss'],
                'phoneno':row['user']['phoneno'],'password':row['user']['password'] ,'re_password':row['user']['re_password'],
                'gender':row['user']['gender'] ,'username':username})

            if created == False:
                return Response({'message':'Sorry the student is already registered.'})

            student = Student.objects.create(user_id=user.id)

            return Response(row)

        def update(self,request,*args,**kwargs):
            instance=self.get_object()
            serializer=StudentUpdateSerializer(data=request.data)

            serializer.is_valid(raise_exception=True)

            data = serializer.data
            if data.get('father_name', False):
                instance.father_name = data.get('father_name')

            if data.get('mother_name', False):
                instance.mother_name = data.get('mother_name')

            instance.save()
            return Response(serializer.data)
Q.
def delete(..)#How to write this delete Function???
    def destroy(self, request, *args, **kwargs):
        instance = self.get_object()
        self.perform_destroy(instance)
        return Response(status=status.HTTP_204_NO_CONTENT)
instance.delete()