Django Rest Framework中的可选嵌套关系?

时间:2014-01-30 14:53:01

标签: json django django-rest-framework

我想创建一个接受这两个jsons的序列化器/视图:

{
    "foo": "bar",
    "foobar": "bazz",
    "info": [
        {
            "field": "value",
            "field2": "value2"
        }
    ]
}

{
    "foo": "bar",
    "foobar": "bazz",
}

" info"节点是可选的。

现在我试过了:

  1. 将嵌套关系定义为" required = False"
  2. 扩展更简单的序列化程序。
  3. 这两种解决方案都不起作用。这意味着默认" is_valid()"并不适用于两个jsons。

    有什么办法以干的方式这样做?

    编辑,添加一些代码:

    我为视图扩展了APIView,为Serializer扩展了serializers.Serializer,但没有多少代码可供展示。

    class InfoSerializer(serializer.Serializer):
        field = serializer.CharField()
        field2 = serializer.Charfield()
    
    class FooBarSerializer(serializer.Serializer):
        foo = serializer.CharField()
        foobar = serializer.CharField()
        info = InfoSerializer(many=True, required=False)
    

    和视图:

    class FooBarView(APIView):
    
         def post(self, request, format=None):
             data = FooBarSerializer(request.DATA)
             if data.is_valid():
                 return Response("{'response': 'valid'}")
             return Response("{'response': 'invalid'}")
    

0 个答案:

没有答案