Trim_whitespace=True在Django串行化器中不起作用

olqngx59  于 2023-01-06  发布在  Go
关注(0)|答案(1)|浏览(105)

我尝试在写入DB之前从API输入中删除空格。

>>> class A(object):
...     def __init__(self, name, email, phone_number):
...             self.name = name
...             self.email = email
...             self.phone_number = phone_number
... 
>>> class ASerializer(serializers.Serializer):
...     name = serializers.CharField(max_length = 200, trim_whitespace=True)
...     email = serializers.EmailField()
...     phone_number = serializers.RegexField("[0-9]{10}")
>>> obj = Geeks("Aditi ", "abc@gmail.com", "1234567890 ")
>>> serializer = ASerializer(obj)
>>> serializer.data
{'name': 'Aditi ', 'email': 'abc@gmail.com', 'phone_number': '1234567890 '}

为什么不去掉名字上的空格呢?有什么想法吗?

bf1o4zei

bf1o4zei1#

您检查/使用序列化程序的方式不正确。如果要检查序列化程序是否正常工作,请按如下方式进行检查。

>>>serializer = ASerializer(data={"name": "Aditi ", "email": "abc@gmail.com", "phone_number": '1234567890 '})
>>>serializer.is_valid()
True
>>>serializer.validated_data
OrderedDict([('name', 'Aditi'), ('email', 'abc@gmail.com'), ('phone_number', '1234567890')])

相关问题