Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在Django REST控件中,序列化程序不会自动删除空格?;_Python_Django_Django Models_Django Rest Framework_Django Serializer - Fatal编程技术网

Python 在Django REST控件中,序列化程序不会自动删除空格?;

Python 在Django REST控件中,序列化程序不会自动删除空格?;,python,django,django-models,django-rest-framework,django-serializer,Python,Django,Django Models,Django Rest Framework,Django Serializer,model.py class Msg(models.Model): content = models.CharField(max_length=1024, null=True) 序列化程序.py class MessageSerializer(serializers.ModelSerializer): class Meta: model = Msg fields = ["content"] 有数据: {"content": " space

model.py

class Msg(models.Model):
    content = models.CharField(max_length=1024, null=True)
序列化程序.py

class MessageSerializer(serializers.ModelSerializer):
    class Meta:
        model = Msg
        fields = ["content"]
有数据:

{"content": "   space    test    "}

第一个印刷品是
{'content':'spacetest'}
第二个印刷品是
{'content':'spacetest'}
因此数据库中的空格消失了。

如何保留空格?

您可以通过从以下位置实现方法来自定义该字段的输出:

trim_whitespace
-如果设置为True,则会修剪前导和尾随空格。默认为True

因此,您需要自己将此标志传递给序列化程序字段,并将其设置为
False

class MessageSerializer(serializers.ModelSerializer):
    content = serializers.CharField(trim_whitespace=False, max_length=1024)
    class Meta:
        model = Msg
        fields = ["content"]
或更好地通过:


第二个变体更好,因为DRF仍然可以正确地从模型中提取其他属性。

您可以使用django rest framework序列化程序中提供的trim_whitespace选项

class MessageSerializer(serializers.ModelSerializer):
    content = serializers.CharField(max_length=1024, trim_whitespace=True)

    class Meta:
        model = Msg
        fields = ["content"]

请去掉所有的背面记号
class MessageSerializer(serializers.ModelSerializer):
    class Meta:
        model = Msg
        fields = ["content"]
        extra_kwargs = {"content": {"trim_whitespace": False}}
class MessageSerializer(serializers.ModelSerializer):
    content = serializers.CharField(max_length=1024, trim_whitespace=True)

    class Meta:
        model = Msg
        fields = ["content"]