DRF序列化器自定义验证失效:validate方法为何不被调用?

在drf序列化器中,自定义验证失效的排查

本文将针对drf序列化器中的验证问题进行分析。问题描述如下:开发者在loginserializer中使用了validate方法进行全局验证,期望在其中生成token并赋值给token字段,但验证似乎无效,validate方法中打印attrs也未如预期输出。代码如下:

class LoginSerializer(serializers.Serializer):    """    登陆与注册    """    id = serializers.IntegerField(read_only=True)    username = serializers.CharField(max_length=20, error_messages={        'required': '用户名不能为空',        'max_length': '用户名不能超过20个字符'    })    openid = serializers.CharField(source='open_id', max_length=255, write_only=True)    unionid = serializers.CharField(source='union_id', max_length=255, write_only=True)    avatar = serializers.CharField(max_length=255)    login_type = serializers.IntegerField(min_value=1, max_value=1)    user_type = serializers.IntegerField(read_only=True)    score = serializers.IntegerField(read_only=True)    token = serializers.CharField(read_only=True)    def create(self, validated_data):        return UserProfile.objects.create(**validated_data)    def validate(self, attrs):        print(self.context.get('attrs'))        print(self.context.get('user'))        attrs['token'] = get_tokens(self.context.get('user'))        return attrs

登录后复制

本文来自互联网或AI生成,不代表软件指南立场。本站不负任何法律责任。

如若转载请注明出处:http://www.down96.com/tutorials/2421.html

热心网友热心网友
上一篇 2025-04-11 14:26
下一篇 2025-04-11 14:26

相关推荐

本站[软件指南]所有内容来自互联网投稿或AI智能生成,并不代表软件指南的立场。