DRF序列化器中的验证不起作用?

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

在全局验证的时候,直接生成token复制给token字段,但是好像没有效果,使用validate打印attrs里面的参数的时候,没有打印也没有报错?
DRF序列化器中的验证不起作用?


回答:

validate方法一般是被is_valid() 方法调用的.
需要提供应用层是如何调用这个serializer的. 才好进一步判断.

以上是 DRF序列化器中的验证不起作用? 的全部内容, 来源链接: utcz.com/p/938822.html

回到顶部