我将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()方法。任何提示将不胜感激。