DjangoRestFramework未验证required = True

时间:2015-05-27 10:17:05

标签: python django django-rest-framework

我今天面临一个非常奇怪的问题。

这是我的序列化程序类。

Topologyserializer

我从Django视图中调用{ "name":"tokpwol", "json": [ ] } ,我传递的是json:

required = True

根据我在DRF中的经验,因为我在json字段中提到了hide(),所以不应该接受上面的json。

但我能够创造记录。 任何人都可以建议我为什么它没有验证json字段以及它如何接受空列表作为json字段?

我正在使用django rest framework 3.0.3

1 个答案:

答案 0 :(得分:2)

DRF没有明确说明required代表哪些列表。 在其代码中,只要提供了值,验证就会传递,即使该值是空列表。

如果要确保列表不为空,则需要手动验证其内容。您可以在TopologySerializer上添加以下方法:

def validate_json(self, value):
    if not value:
        raise serializers.ValidationError("Connections list is empty")
    return value

我现在无法测试它,但它应该可以工作。