【发布时间】:2019-02-01 17:26:39
【问题描述】:
我有一个看起来像这样的 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 字段进行验证,只是希望您在信号中进行验证。这似乎有点不对劲。
【问题讨论】:
标签: django django-rest-framework django-signals django-serializer django-jsonfield