【问题标题】:Data class serialization with blank string in DjangoDjango 中带有空白字符串的数据类序列化
【发布时间】:2022-12-07 16:35:46
【问题描述】:

我在 Django 中有一个使用 rest 框架的数据类,它有一个字符串字段和一个序列化程序。

class Foo:
    string_field:str


class FooSerializer(Dataclass):
    class Meta:
        dataclass = Foo

我的问题是,如果 string_field 为空,则无法验证序列化程序。 我调用的 JSON:

{'string_field': ''}

和错误:

{'string_field': [ErrorDetail(string='This field may not be blank.', code='blank')]}

在序列化程序中声明字段而不使用数据类是一种解决方案,但如果可能的话,我更愿意使用数据类方式。在我的项目中,我使用的是其余框架的 Django 3.0.5、Python 3.8 和 3.11。

【问题讨论】:

    标签: python django django-rest-framework


    【解决方案1】:

    你需要在serializers.py中设置allow_blank=True

    from rest_framework import serializers
    
    class CommentSerializer(serializers.Serializer):
       name = CharField(allow_blank=True, max_length=100)
    

    【讨论】:

      猜你喜欢
      • 2016-01-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-07
      • 1970-01-01
      • 2018-06-07
      相关资源
      最近更新 更多