我有一个看起来像这样的 Django 模型:
class Foo:
data = JSONField(encoder=DjangoJSONEncoder, default=dict)
我有相应的序列化程序,它非常基本:
class FooSerializer(BaseSerializer):
class Meta:
model = models.Foo
fields = '__all__'
我想做的是对序列化程序中的那个 JSON 字段进行一些验证。我尝试通过覆盖validate
andcreate
函数来做到这一点,但在这两种情况下,attrs.data
or的值validated_data.data
都是None
。
奇怪的是,如果我在pre-save
orpost-save
信号中创建相同的验证,则该instance.data
值不是None
并且实际上具有我在请求中传递的值。
我想知道我是否做错了什么,或者 DRF 是否不支持对序列化程序中的 JSON 字段进行验证,只是希望您在信号中进行验证。这似乎有点不对劲。