我是Django Rest框架的新手,我想知道如何在ModelSerializer类中调用创建和更新方法
据我所知,当发送POST或PUT请求时,会自动触发create和update方法。有没有办法调用一个新函数,比如say_hello()
这里有一个例子。当我点击一个PUT请求时,我想调用方法say_hello()
class UserSerializer(serializers.ModelSerializer):
"""Serializer for the users object"""
class Meta:
model = User
fields = "__all__"
def create(self, validated_data):
"""Create a new user with encrypted password and return it"""
return get_user_model().objects.create_user(**validated_data)
def update(self, instance, validated_data):
"""Update an user, setting the password and return it"""
password = validated_data.pop('password', None)
user = super().update(instance, validated_data)
if password:
user.set_password(password)
user.save()
return user
def say_hello(self, validated_data):
print(validated_data)
return "Hello you"
要调用与update方法不同的方法,需要覆盖序列化程序的def save()方法:
您可以查看Django Rest框架默认实现here
但您可能更愿意做的是通过覆盖def perform_update()方法来修改视图集:
相关问题 更多 >
编程相关推荐