使用ModelViewset的DRF中没有PUT方法

我将Django 2.2与Django Rest Framework 3.7一起使用。 我有这样的课程:

class UserViewSet(viewsets.ModelViewSet):

    permission_classes = [AllowAny]
    serializer_class = UserSerializer
    queryset = User.objects.all()

    def update(self,request,*args,**kwargs):
        import pdb;pdb.set_trace()

我已经这样创建了UserSerializer:

class UserSerializer(serializers.ModelSerializer):
    class Meta:
        model = User
        fields = ('id','email','name','password')
        write_only_fields = ('password',)
        read_only_fields = ('id',)

    def create(self,validated_data):
        user = User.objects.create(
            email=validated_data['email'],name=validated_data['name'],)

        user.set_password(validated_data['password'])
        user.save()

        return user

    def update(self,instance,validated_data):
        print('lalala from serialzier')
        import pdb;pdb.set_trace()

        instance.username = validated_data['username']
        instance.save()
        return instance

仅显示允许的方法--允许:GET,POST,HEAD,OPTIONS

我想知道为什么我无法执行PUT,DELETE,RETRIEVE之类的操作。默认情况下,根据文档使用ModelViewset支持这些功能。

在所示的代码中,既不会调用序列化程序的update()也不可以调用views.py update()方法。任何提示将不胜感激。

youchaozan 回答:使用ModelViewset的DRF中没有PUT方法

这能回答您的问题吗?


class UserViewSet(viewsets.ModelViewSet):

    permission_classes = [AllowAny]
    serializer_class = UserSerializer
    queryset = User.objects.all()

    def put(self,request,id,format=None):
        ...

    def delete(self,format=None):
        ...
本文链接:https://www.f2er.com/3156807.html

大家都在问