lia*_*eng 8 python django django-models django-serializer django-rest-framework
model.py
class Msg(models.Model):
content = models.CharField(max_length=1024, null=True)
Run Code Online (Sandbox Code Playgroud)
serializer.py
class MessageSerializer(serializers.ModelSerializer):
class Meta:
model = Msg
fields = ["content"]
Run Code Online (Sandbox Code Playgroud)
有数据:
{"content": " space test "}
Run Code Online (Sandbox Code Playgroud)
和
print(data)
serializer = MessageSerializer(data=data)
if serializer.is_valid():
serializer.save()
print(serializer.data)
return True, serializer.data
else:
return False, serializer.errors
Run Code Online (Sandbox Code Playgroud)
第一次打印是
{'content': ' space test '}
第二次打印是
{'content': 'space test'}
因此数据库中的空格消失了.
我该如何保留空间?
Kos*_*Kos 12
trim_whitespace
- 如果设置为True,则修剪前导和尾随空格.默认为True.
因此,您需要自己将此标志传递给序列化程序字段并将其设置为False
:
class MessageSerializer(serializers.ModelSerializer):
content = serializers.CharField(trim_whitespace=False, max_length=1024)
class Meta:
model = Msg
fields = ["content"]
Run Code Online (Sandbox Code Playgroud)
或通过其他关键字参数更好:
class MessageSerializer(serializers.ModelSerializer):
class Meta:
model = Msg
fields = ["content"]
extra_kwargs = {"content": {"trim_whitespace": False}}
Run Code Online (Sandbox Code Playgroud)
第二种变体更好,因为DRF仍然可以从模型中正确地拾取其他属性.
归档时间: |
|
查看次数: |
1053 次 |
最近记录: |