在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生成,不代表软件指南立场。本站不负任何法律责任。