Сериализация класса данных с пустой строкой в Django
У меня есть класс данных в 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 rest framework.
Вам необходимо установить allow_blank=True
в serializers.py
from rest_framework import serializers
class CommentSerializer(serializers.Serializer):
name = CharField(allow_blank=True, max_length=100)