У меня есть модель Django, которая выглядит примерно так:
class Foo:
data = JSONField(encoder=DjangoJSONEncoder, default=dict)
И у меня есть соответствующий сериализатор для нее, который довольно прост:
class FooSerializer(BaseSerializer):
class Meta:
model = models.Foo
fields = '__all__'
Что я хочу сделатьдолжен иметь некоторые проверки для этого поля JSON в сериализаторе.Я попытался сделать это путем переопределения функций validate
и create
, но в обоих случаях значение для attrs.data
или validated_data.data
равно None
.
Странная часть заключается в том, что если я создаю те же проверки в сигналах pre-save
или post-save
, тогда значение instance.data
не равно None
и фактически имеет значение, которое я передаю в запросе.,
Мне интересно, что я делаю что-то не так или DRF не поддерживает выполнение проверок для полей JSON в сериализаторе, и просто ожидаю, что вы сделаете это в сигналах.Это выглядит как-то неправильно.