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里面的参数的时候,没有打印也没有报错?
回答:
validate方法一般是被is_valid() 方法调用的.
需要提供应用层是如何调用这个serializer的. 才好进一步判断.
以上是 DRF序列化器中的验证不起作用? 的全部内容, 来源链接: utcz.com/p/938822.html